El Jueves, 15 de Noviembre de 2007, Iñaki Baz Castillo escribió:
He llamado desde Twinkle a Asterisk, apunto los tags y call-id de la llamada y durante el diálogo envío un OPTIONS a Asterisk. Los resultados son divertidos (una autentica ensalada de despropósitos, pero creo que de chiripa pueden ser "válidos").
Asterisk 1.4.13
1º caso: pedantic=no (Asterisk sólo comprueba el call-id pero no los tags)
a) OPTIONS -> 200 OK (bien!)
b) OPTIONS cambiando RURI username: c.1) la extensión existe -> 200 OK (ainsss) c.2) la extensión no existe -> 404
c) OPTIONS cambiando from/to tag -> 200 OK (bueno...)
d) OPTIONS cambiando call-id -> 404 (bien!)
2º caso: pedantic=yes (Asterisk comprueba el call-id y tags)
a) OPTIONS -> 200 OK (bien!)
b) OPTIONS cambiando RURI username: c.1) la extensión existe -> 200 OK (ainsss) c.2) la extensión no existe -> 404
c) OPTIONS cambiando from/to tag -> 481 Transaction Does Not Exist (opss...)
d) OPTIONS cambiando call-id -> 481 Transaction Does Not Exist (la cagamos...)
Bueno, yo ya sabía que el modo pedantic funciona muy mal, trata de ser más RFC pero la lía gorda pues siempre da por hecho que habla con un UAS y si hay un OpenSer por medio no da una.
Pero el caso es que si ponemos modo pedantic=no entonces sí que podría funcionar (a tenor de los resultados) el tema del OPTIONS in-dialog, ¿no? (casi de casualidad, pues no comprueba el RURI, sólo el call-id, pero bueno...).
¿Qué opinas?
Voy a reportar ahora mismo a Digium que Asterisk se comporta mal en modo pedantic en cuanto a que devuelve 481 en vez de 404 para un OPTIONS in-dialog. ¿Podrías por favor confirmarme que sólo es válido el 404 y no el 481? Mil gracias.
Pues lo he comprobado ahora enviando el OPTIONS a Twinkle (super RFC compatible) y concluyo que el 481 es muy válido (es lo que devuelve Twinkle si no existe el diálogo).
Conclusión: Asterisk lo hace bien (sobre todo en pedantic mode).
Y también concluyo que no se comprueba el username, sólo el From/To tag y call-id.
Bueno, mejor ¿no? XD
PD: Si que me gustaría saber dónde se explica el uso de OPTIONS in-dialog para monitorización de sesiones.
Saludos.