Hi, I'm starting using OpenSer with Asterisk.
In calls passing through Asterisk the caller or callee get music on hold of Asterisk when is put on hold. But of course, direct calls between OpenSer users don't get this music.
I'm thinking in the posibility of detecting "on hold" reinvites (maybe reading the "a=sendonly" of SDP body) and rewriting the SDP IP contact to a music on hold server.
I have no idea if this is possible. The first issue is how to set up a RTP music streamer for pointing there the SDP c header. Does "this" RTP music streamer exist? of course Asterisk is not a solution since I don't want to manage INVITE's, just rewrite the SDP.
Second issue is: could be rewriting the SDP always sucessfull? what about cases with more than one RTP session as audio+video?
So, is there any solution for offering music on hold with OpenSer?
Thanks a lot.
Im also interested in getting MOH working with just OpenSER.
I was looking at this a while ago and I couldn't see a nice way to do it, Phone A has to basically setup a call between Phone B and your MOH server. Doing this without some sort of custom module would be near impossible (if I get time ill start work on a module but im really not very good!).
If anyone else has tackled this problem or has any info I'd be happy to hear it.
Thanks.
-----Original Message----- From: users-bounces@openser.org [mailto:users-bounces@openser.org] On Behalf Of Iñaki Baz Castillo Sent: 09 July 2007 14:51 To: users@openser.org Subject: [OpenSER-Users] Rewrite SDP for music of hold
Hi, I'm starting using OpenSer with Asterisk.
In calls passing through Asterisk the caller or callee get music on hold of Asterisk when is put on hold. But of course, direct calls between OpenSer users don't get this music.
I'm thinking in the posibility of detecting "on hold" reinvites (maybe reading the "a=sendonly" of SDP body) and rewriting the SDP IP contact to a music on hold server.
I have no idea if this is possible. The first issue is how to set up a RTP music streamer for pointing there the SDP c header. Does "this" RTP music streamer exist? of course Asterisk is not a solution since I don't want to manage INVITE's, just rewrite the SDP.
Second issue is: could be rewriting the SDP always sucessfull? what about cases with more than one RTP session as audio+video?
So, is there any solution for offering music on hold with OpenSer?
Thanks a lot.
Iñaki Baz Castillo wrote:
Hi, I'm starting using OpenSer with Asterisk.
In calls passing through Asterisk the caller or callee get music on hold of Asterisk when is put on hold. But of course, direct calls between OpenSer users don't get this music.
I'm thinking in the posibility of detecting "on hold" reinvites (maybe reading the "a=sendonly" of SDP body) and rewriting the SDP IP contact to a music on hold server.
You would also have to tell the music server where to send the rtp stream. And you'd have to keep dialog state on the proxy in order to capture the off-hold INVITE and tell the music server to stop sending media.
This all leads to a sip proxy acting as a B2BUA/3PCC server which needs a lot of resources and is difficult to implement. I don't say it is impossible but adding this functionality to openser would be quite a task.
Unfortunately even the IETF has no clear message on music on hold, no wonder sip phones normally do not support it in a standards compliant way. There is a draft called "SIP Service Examples" that already has 12 revisions and that includes an example on how music on hold should be implemented.
http://www1.tools.ietf.org/html/draft-ietf-sipping-service-examples-12#secti...
Previous revisions of this draft followed a 3PCC model for music on hold (http://tech-invite.com/Ti-sip-service-3.html), whereas revision 12 now implements music on hold with a call transfer.
One can only hope that we will see products implementing these procedures.
Pingtel seems to offer a music-on-hold server for the 3PCC model: http://interop.pingtel.com/#moh
And SNOM phones seem to work fine together with the pingtel/sipX solution: http://sipx-wiki.calivia.com/index.php/HowTo_configure_SNOM_SIP_phone_with_s...
Christian
I have no idea if this is possible. The first issue is how to set up a RTP music streamer for pointing there the SDP c header. Does "this" RTP music streamer exist? of course Asterisk is not a solution since I don't want to manage INVITE's, just rewrite the SDP.
Second issue is: could be rewriting the SDP always sucessfull? what about cases with more than one RTP session as audio+video?
So, is there any solution for offering music on hold with OpenSer?
Thanks a lot.
El Tuesday 10 July 2007 20:03:53 Christian Schlatter escribió:
Iñaki Baz Castillo wrote:
Hi, I'm starting using OpenSer with Asterisk.
In calls passing through Asterisk the caller or callee get music on hold of Asterisk when is put on hold. But of course, direct calls between OpenSer users don't get this music.
I'm thinking in the posibility of detecting "on hold" reinvites (maybe reading the "a=sendonly" of SDP body) and rewriting the SDP IP contact to a music on hold server.
You would also have to tell the music server where to send the rtp stream. And you'd have to keep dialog state on the proxy in order to capture the off-hold INVITE and tell the music server to stop sending media.
This all leads to a sip proxy acting as a B2BUA/3PCC server which needs a lot of resources and is difficult to implement. I don't say it is impossible but adding this functionality to openser would be quite a task.
Unfortunately even the IETF has no clear message on music on hold, no wonder sip phones normally do not support it in a standards compliant way. There is a draft called "SIP Service Examples" that already has 12 revisions and that includes an example on how music on hold should be implemented.
http://www1.tools.ietf.org/html/draft-ietf-sipping-service-examples-12#sect ion-2.3
Previous revisions of this draft followed a 3PCC model for music on hold (http://tech-invite.com/Ti-sip-service-3.html), whereas revision 12 now implements music on hold with a call transfer.
One can only hope that we will see products implementing these procedures.
Pingtel seems to offer a music-on-hold server for the 3PCC model: http://interop.pingtel.com/#moh
And SNOM phones seem to work fine together with the pingtel/sipX solution: http://sipx-wiki.calivia.com/index.php/HowTo_configure_SNOM_SIP_phone_with_ sipX#Music_On_Hold_.28MoH.29
Thanks a lot. I see that it's not an easy task. I'll try it whena have some tiem and if I get something decent I''ll tell it here.
Regards.
I am using freeradius with openser 1.0.1.
My problem is that openser is emitting TWO radius start records: One for the INVITE with SIP method = 1 (INVITE) and also a second start record for SIP Method = 4 (ACK)
Is is normal that a start record is also emitted for the ACK ?
As long as the INVITE record is sent before the ACK record that is no real problem.
However every-now-and-then (no pattern observed) Openser sends the Radius start record with SIP Method = 4 (ACK) before the Record with SIP Method = 1 for the INVITE.
The problem is that the Radius record for the ACK does not contain the username from the credentials so that the username is not correctly set in the Radius record, instead of the correct username the callerid is used as the username.
How do I prevent that openser sends start records for the ACK ? Quite frankly I do not understand why a start record for ACK is emitted since I set the radius_flag only for INVITEs.
the relevant parts from my configuration:
modparam("acc", "radius_config", "/usr/local/etc/radiusclient-ng/radiusclient.conf") modparam("acc", "radius_flag", 1) modparam("acc", "log_flag", 1) modparam("acc", "service_type", 15)
route{
..... # If this is an INVITE and not RE-INVITE start accounting if(is_method("INVITE") && !has_totag()){ # set the acc flags setflag(1); };
if (is_method("ACK")) { #hop-by-hop ACKs are absorbed here t_newtran(); # drop broken ACKs exit; };
Any hints are welcome.
TIA
Gerry
___________________________________________________________ All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine http://uk.docs.yahoo.com/nowyoucan.html
Maybe you have set report_ack ? http://www.openser.org/docs/modules/1.2.x/acc.html#AEN217
klaus
G.Jacobsen wrote:
I am using freeradius with openser 1.0.1.
My problem is that openser is emitting TWO radius start records: One for the INVITE with SIP method = 1 (INVITE) and also a second start record for SIP Method = 4 (ACK)
Is is normal that a start record is also emitted for the ACK ?
As long as the INVITE record is sent before the ACK record that is no real problem.
However every-now-and-then (no pattern observed) Openser sends the Radius start record with SIP Method = 4 (ACK) before the Record with SIP Method = 1 for the INVITE.
The problem is that the Radius record for the ACK does not contain the username from the credentials so that the username is not correctly set in the Radius record, instead of the correct username the callerid is used as the username.
How do I prevent that openser sends start records for the ACK ? Quite frankly I do not understand why a start record for ACK is emitted since I set the radius_flag only for INVITEs.
the relevant parts from my configuration:
modparam("acc", "radius_config", "/usr/local/etc/radiusclient-ng/radiusclient.conf") modparam("acc", "radius_flag", 1) modparam("acc", "log_flag", 1) modparam("acc", "service_type", 15)
route{
..... # If this is an INVITE and not RE-INVITE start accounting if(is_method("INVITE") && !has_totag()){ # set the acc flags setflag(1); };
if (is_method("ACK")) { #hop-by-hop ACKs are absorbed here t_newtran(); # drop broken ACKs exit; };
Any hints are welcome.
TIA
Gerry
___________________________________________________________ All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine http://uk.docs.yahoo.com/nowyoucan.html
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users