Hace unos años, en la época de Asterisk 1.2 en un sistema de un compañero empecé a ver unos mensajes de error bastante curiosos que se repetían continuamente en la consola CLI:
ERROR[6542] chan_zap.c: !! < Unknown IE 26 (cs5, len = 4)
Lo curioso es que este ensaje de error se repetía cada muy poco tiempo, así que un poco mosqueado, pese a que todo el sistema funcionaba correctamente, decidí investigar el porqué de este mensaje.
Tras hace un ‘pri intense debug span 1‘ durante varios minutos y revisar toda esa cantidad ingente de datos llegué al mensaje que provocaba el error:
< Informational frame: < SAPI: 00 C/R: 1 EA: 0 < TEI: 000 EA: 1 < N(S): 022 0: 0 < N(R): 061 P: 0 < 20 bytes of data Handling message for SAPI/TEI=0/0 -- ACKing all packets from 60 to (but not including) 61 -- Something left to transmit (61), restarting T200 counter < Protocol Discriminator: Q.931 (8) len=20 < Call Ref: len= 2 (reference 610/0x262) (Terminator) < Message type: INFORMATION (123) < [28 08 20 30 20 50 41 53 4f 53] < Display (len= 8) [ 0 PASOS ] < [95] < Locking Shift (len=01): Requested codeset 5 < [1a 02 c4 00] [Jun 5 11:52:03] ERROR[6542]: chan_zap.c:8248 zt_pri_error: !! < Unknown IE 26 (cs5, len = 4) -- Processing IE 40 (cs0, Display) -- Processing IE 26 (cs5, Unknown Information Element) !! Unknown IE 26 (cs5, Unknown Information Element) Sending Receiver Ready (23)

Por lo que me dí cuenta que ese error era simplemente la interpretación de un tipo de mensaje AOC (Advise of Charge) dentro del conjunto de mensajes ‘cs5‘ definidos como «Mensajes personalizados del Proveedor», por lo que estaba claro, un tipo de mensaje que envía el proveedor para informar los «pasos» o los «momentos en los que aumenta el coste de esa llamada» a fin de que el sistema pueda reconocerlo y sea capaz de mostrar el coste de la llamada en tiempo real (por ejemplo para una cabina de teléfono, un locutorio o cualquier otro caso).
Asterisk no lo reconocía como tal, así que rellené el ticket en issues.asterisk.org para comentar este mensaje y que, por lo menos dejase de aparecer como «mensaje de error«.
Pues me entero gracias a la lista Asterisk-DEV y a la web VentureVoIP que David Vossel está desarrollando el soporte de AOC para Asterisk de forma que sea capaz de entender y actuar en función de los mensajes que reciba del proveedor, por lo que David está interesado en encontrar a gente que necesite de este soporte para que pueda probar lo que lleva hecho y así que el soporte de esta característica sea lo más real, efectivo y útil posible.