Hi,
In my test setup, I have Openser as proxy and SEMS as announcement server. In Openser config I'm sending forking invite to SEMS using append_branch for every call made. For example when User1 dials User2, Openser send INVITES to both SEMS and User2, while the User2 phone rings, announcement is played from SEMS to User1 using the early media 183 session progress message. Once the User2 answers the call, a CANCEL message is sent to SEMS and normal conversation happens between User1 and User2 which is expected.
The problem which I'm facing is that when User2 doesn't answer the call or if rejects the call, Openser never sends CANCEL to SEMS, so the annoucement is being played continously to User1 and User1 is unaware of the remote party status. How can I configure the Openser script to handle such unanswered or call reject cases and send CANCEL to SEMS and inform User1 about the unanswered or cancel status?
Does it cancel 183 progress only in case of 200 OK from other invite session? how can we handle others like 408, 486 etc?
I'm not pasting my Openser.cfg here because it is the basic sample script with just append_branch("SEMS") in case of INVITE.
Did anybody try out such scenarios? Any help would be appreciated.
Thanks, ~Vamsi
Vamsi Pottangi writes:
The problem which I'm facing is that when User2 doesn't answer the call or if rejects the call, Openser never sends CANCEL to SEMS, so the annoucement is being played continously to User1 and User1 is unaware of the remote party status. How can I configure the Openser script to handle such unanswered or call reject cases and send CANCEL to SEMS and inform User1 about the unanswered or cancel status?
openser is not sending cancel to sems, because it has to wait for that branch to give a final response. early media especially with forking is completely broken and should not be used. feel free to read about 200 messages on this topic from sip mailing list archives.
-- juha
maybe the easiest idea will be to set the fr_inv_timeout to force openser to generate a timeout and sent CANCEL.
regards, Bogdan
Juha Heinanen wrote:
Vamsi Pottangi writes:
The problem which I'm facing is that when User2 doesn't answer the call or if rejects the call, Openser never sends CANCEL to SEMS, so the annoucement is being played continously to User1 and User1 is unaware of the remote party status. How can I configure the Openser script to handle such unanswered or call reject cases and send CANCEL to SEMS and inform User1 about the unanswered or cancel status?
openser is not sending cancel to sems, because it has to wait for that branch to give a final response. early media especially with forking is completely broken and should not be used. feel free to read about 200 messages on this topic from sip mailing list archives.
-- juha
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users