[asterisk-dev] IAX Connections Between 1.4, 1.6 and 1.2
Wolfgang Pichler
wpichler at yosd.at
Wed Nov 18 00:03:46 CST 2009
Hi all,
i know - version 1.2 is quit old - but i have a system where i can't
update to a newer version...
I have several iax2 connections between the 1.2 box - and some other
1.4 and 1.6 boxes.
After 1.2 there was a new CONTROL_FRAME type introduced - AST_CONTROL_SRCUPDATE
This CONTROL frame is unknown to asterisk 1.2 - and it seems that
asterisk does break out of the bridge in some cases if it receives
this control frame.
In asterisk 1.2 - in channel.c there is
if ((f->frametype == AST_FRAME_CONTROL) && !(config->flags &
AST_BRIDGE_IGNORE_SIGS)) {
if ((f->subclass == AST_CONTROL_HOLD) || (f->subclass ==
AST_CONTROL_UNHOLD) ||
(f->subclass == AST_CONTROL_VIDUPDATE)) {
ast_indicate(who == c0 ? c1 : c0, f->subclass);
} else {
*fo = f;
*rc = who;
res = AST_BRIDGE_COMPLETE;
ast_log(LOG_DEBUG, "Got a FRAME_CONTROL (%d) frame on channel
%s\n", f->subclass, who->name);
break;
}
}
it does not know SRCUPDATE - so it will set result to
AST_BRIDGE_COMPLETE and break out of the bridge loop....
I have looked at the 1.4 and 1.6 code - it does seem that a SRCUPDATE
does get generated every time channels get brigded and every time the
channel bridge got broken...
Can the SRCUPDATE occour somehow in the midle of a call ? It would
break iax2 connection to 1.2 if it would occour in the middle of a
call - or i am wrong ?
best regards,
Wolfgang
More information about the asterisk-dev
mailing list