Ardjan Zwartjes wrote:
Hello list,
Can anybody help me with the following problem: I have a network with a
machine running OpenSER (1.1.0) and a machine running Asterisk (1.2.7).
When a call is made to a certain number on the OpenSER machine I use a
append_branch to fork the call to two phones, this works fine. The
problem arises when I want to fork the call to two extensions on the
asterisk machine. Only one of the extensions will actually start
ringing. Using ethereal I found out that OpenSER sends two invites to
the asterisk machine, asterisk returns a "100 Trying" on both invites,
but after that Asterisk seems to forget about the second call. The first
Invite is processed correctly.
I suspect that the problem lies in the fact that asterisk
receives two calls with the same Call-ID and just drops one of them.
This behaviour is understandable since call-ids are supposed to be
unique (as far as I know). Sending two invites with the same call-id on
the otherhand also is the logical thing to do from OpenSERs point of
view, but clearly this isn't "compatible".
You suspect correct, asterisk only looks at the call-id instead of
additionally using the branch-id to determine if two sip messages belong
to the same transaction or not. This behavior violates RFC 3261 and
should be fixed in the next release of the asterisk sip stack. This is
also the reason why asterisk cannot detect sip spirals.
So my question is: Is there some way to let OpenSER
succesfully
branch a single call to two extensions on the same Asterisk? I hope
somebody knows of a way how to fix this. Thanks in advance.
I haven't found a solution so far other than replacing asterisk with an
RFC 3261 compliant gateway.
Christian
Kind regards,
Ardjan Zwartjes.
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users