Juan Carlos Castro y Castro wrote: > I have a scenario in which an OpenSER machine distributes load among > several Asterisk machines for outgoing PSTN. I use an external program > which I call through exec_dset() to select which server a call goes to. > I use record_route(). > > All calls are completed OK, but when I dial from some SIP user-agents > and hang up from the caller side, OpenSER gets crazy and doesn't know > where to route the BYE to. Here's the reason: > > Good scenario: > - I make a call to <[EMAIL PROTECTED]> > - OpenSER calls exec_dset, which turns it into > <[EMAIL PROTECTED]> > - Call is answered > - I hang up > - My UA sends a BYE like this: "BYE > sip:[EMAIL PROTECTED] SIP/2.0" > - I get an OK back, all is well. > (Sometimes the # in the uri above is sent as %23, but it works either way) > > Bad scenario: > - I make a call to <[EMAIL PROTECTED]> > - OpenSER calls exec_dset, which turns it into > <[EMAIL PROTECTED]> > - Call is answered > - I hang up > - My UA sends a BYE like this: "BYE sip:[EMAIL PROTECTED] SIP/2.0" > - My openser.cfg doesn't know how to handle that and I get a "Loop > Detected" back. The destination never gets a hangup signal. > > Is the second UA from the "bad" scenario disrespecting the RFC? Do I > have any recourse to route a BYE that comes like that to the right > Asterisk server?
Hi, Juan! If called UA use '[EMAIL PROTECTED]' as it own Contact-header then calling UA must use it to construct R-URI for BYE request. But I think that called party still use '[EMAIL PROTECTED]' as Contact-header. So you must route BYE request by the same way as INVITE request. -- CU, Victor Gamov _______________________________________________ Users mailing list [email protected] http://lists.openser.org/cgi-bin/mailman/listinfo/users
