Re: [OpenSIPS-Users] T.38 detection/redirect in OpenSIPS
I'm confused on this as well - wouldn't you be effectively placing two calls (one via a non-T38 gateway, one via a T38 gateway) to the same destination? Figuring that most T38 is going to terminate to a single analog device, I would think that were this possible at a SIP level, the device would already be busy before the second call came in as fax machines don't typically drop the line very rapidly? Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Wednesday, March 17, 2010 11:23 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] T.38 detection/redirect in OpenSIPS right, that is exactly what the b2b is up to do - to be able (at signalling level) to manipulate the call legs Regards, Bogdan Brett Nemeroff wrote: Bogdan, But at this point, you are now playing with a dialg that is already connected to an endpoint. You'd need to drop the first call to establish a new call with the reinvite. Right? -Brett On Mar 17, 2010, at 11:50 AM, Bogdan-Andrei Iancu bog...@voice-system.ro wrote: Hi Brett, Brett Nemeroff wrote: I don't think there is any way to do this without an RTP capable device in the mix. you do not need to look into RTP as the FAX is advertised in the re-INVITE (in SDP) - so you can detect it from opensips script by inspecting the SDP of reINVITES What you may be able to do is have asterisk detect that it's a fax, then reject it if it is.. I don't know if you can do all that without answering the call. no, you cannnot, as first the call is established (from sip point of view) as a simple audio call and after that re-negotiated (via re-INVITE) for FAX Then you can forward it back to the proxy if it is a fax with maybe a prefix. A lot of assumptions in there. Would like to hear if you find something that works. Not sure if you can SIP Spiral yet in asterisk anyway. ;) I do not see the need of Asterisk - maybe with some changes, the b2b module will be able to handle this - see my prev email. Regards, Bogdan -Brett On Wed, Mar 17, 2010 at 10:51 AM, David J. da...@styleflare.com mailto:da...@styleflare.com wrote: Matt, I am for sure probably wrong, but I think you would need Asterisk or Variant to Determine that it is a Fax Call, I dont think UAC's send T38 information without negotiating with the other side who request that it is capable, then it brings you to Jeff's answer. See above. Matthew S. Crocker wrote: Can OpenSIPS make routing decisions based on the SDP information in an INVITE? Lets say I have the following config PSTN - t.38 Gateway - OpenSIPS - UserAgent I have a TN from the PSTN routed to the UserAgent, I'd like to provide a service so the user can use the TN for both voice faxing. Voice call goes through normally (g.711 g.729 codec) Fax call starts off as a normal voice call (INVITE, 180, 183, 200). Once the call is answered the originating end (PSTN) starts sending fax tones. The Gateway hears the fax tones and attempts to RE-INVITE with T.38 in the SDP. I'd like OpenSIPS to see the T.38 capability in the SDP and redirect the call to a fax-e-mail gateway. So, the 2nd INVITE comes in, OpenSIPS sends the INVITE to the fax gateway and a BYE to the user. The fax gateway does a 200 and negotiates T.38 with the PSTN gateway. I know I can route the call through Asterisk and have it do a quiet answer and listen for the modem sounds. I'd like to avoid using Asterisk for all RTP traffic and only use it for the fax gateway traffic (i.e. once it has been determined to be a fax Asterisk steps in and handled the T38 - E-mail) -Matt ___ Users mailing list Users@lists.opensips.org mailto:Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users --- - ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -- Bogdan-Andrei Iancu www.voice-system.ro ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -- Bogdan-Andrei Iancu www.voice-system.ro ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list
Re: [OpenSIPS-Users] Can opensips handle 302 redirection?
John, Look in to the get_redirects() function: http://www.opensips.org/html/docs/modules/devel/uac_redirect.html#id2285 91 Jeff K -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of John Quick Sent: Wednesday, November 25, 2009 7:23 AM To: users@lists.opensips.org Subject: [OpenSIPS-Users] Can opensips handle 302 redirection? Is it possible for opensips to trap a 302 Temporarily moved reply following an INVITE? I would like to check if the requested new Contact address contained in the reply packet is acceptable. If it is, opensips will add a new branch and drop the 302 response. If it is not then I would want to redirect the call to a media server or voicemail server to inform the caller of the problem. I have already tried several ideas using onreply_route and failure_route, but neither of these route blocks has both access to the $ct.fields(uri) of the reply (where the requested divert address is stored) and the capability of appending a new branch. I also tried using dialog values to store $ct.fields(uri) in onreply_route and then fetch the value back again in failure_route, but it returns null. ($DLG_status is shown as 1 in both onreply and failure route blocks even if I call create_dialog() before relaying the Invite). Any help greatly appreciated. John Quick P.S. I got no response to my last question about processing the uri of each branch in a destination set returned by exec_dset(). Can anyone help with that? ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Any word on the B2B bug?
Anca, Thanks *so* much - I really appreciate your effort! -- Jeff Kronlage Data102 -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Anca Vamanu Sent: Friday, November 20, 2009 9:07 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Any word on the B2B bug? Hi Jeff, I have fixed it (with a bit of delay than what I promised :) ). Please update from svn. Thanks and regards, Anca Jeff Kronlage wrote: Hi Anca, One of my coworkers is on the devel mailing list and saw the repeated OK issue I was having with the B2B come through as a bug report. Don't mean to be a pest or to rush anyone, but we were curious if there was a timeframe on that being addressed? It would help to know for our internal planning. Thanks so much, Jeff K ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -- Anca Vamanu www.voice-system.ro ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Any word on the B2B bug?
Hi Anca, One of my coworkers is on the devel mailing list and saw the repeated OK issue I was having with the B2B come through as a bug report. Don't mean to be a pest or to rush anyone, but we were curious if there was a timeframe on that being addressed? It would help to know for our internal planning. Thanks so much, Jeff K ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Any word on the B2B bug?
First of all, Alex, Wow, I don't really think this was necessary. Perhaps my word choice at 5:30am was poor, and if that was the case, I apologize. Anca, Thanks for your quick and fantasic response. Everyone, I've been involved in the open source community on other projects. I get it. This was not a pester. This was a serious request for ETA - if it was going to be a month, I would have liked to know so I can pursue other approaches of problem solving. I don't see a request for ETAs as being a get it done! and that's certainly not how I was hoping to come across. As we all know, it's hard to express intent/emotion over electronic media, so let's all take a deep breath and be friends. Cheers guys, thanks for all the hard work. Jeff K -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Alex Balashov Sent: Wednesday, November 18, 2009 6:03 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Any word on the B2B bug? With all due respect, Jeff, this is a free open-source project; unless you have a commercial maintenance or support agreement of some description (in which case this mailing list is not a forum for communication related to internal affairs), pestering developers about open items is not a freedom at your disposal. The statement Don't mean to be a pest or to rush anyone implies that it is within the scope of your authority or capability to rush anyone if you did have the inclination. It is not. Anca Vamanu wrote: Hi Jeff, I will solve it today or in the worst case tomorrow. Regards, Anca Jeff Kronlage wrote: Hi Anca, One of my coworkers is on the devel mailing list and saw the repeated OK issue I was having with the B2B come through as a bug report. Don't mean to be a pest or to rush anyone, but we were curious if there was a timeframe on that being addressed? It would help to know for our internal planning. Thanks so much, Jeff K ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -- Alex Balashov - Principal Evariste Systems Web : http://www.evaristesys.com/ Tel : (+1) (678) 954-0670 Direct : (+1) (678) 954-0671 ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] B2BUA and placing a call on hold. Bug?
Anca, I've nearly got my B2BUA ready for deployment, however, in a front-end/back-end solution, with my standard proxy configuration in the front-end (passing calls to the B2BUA back-end), I'm having trouble putting a call on hold. Please note that all other functionality is working great - REFERs, media-related reINVITEs, etc. I noticed this because if I put the call on hold for too long while attempting a REFER, I start having problems. Basically, the TM module on the B2BUA keeps re-transmitting the final 200 OK. The UAC responds to all of these with an ACK, which the B2B passes on to the far SIP endpoint. Eventually the UAC, getting hammered by OKs, assumes there's a problem and sends a BYE after about 30 seconds. Note that if I transfer during this time period, the call stays up indefinitely. It's only the reINVITE for hold that breaks it. My config on the B2B box is super-simplified (less than 10 lines) so I don't think it's a configuration problem. Happy to post B2B confgs/debug/SIP trace/etc. Please let me know what (if anything) is necessary. Please advise. Thanks, Jeff K ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Radius CDR records depend who hangs up first
John, I'm not the RADIUS expert at our organization, but we do log to RADIUS and then use CDRTool to rate calls. With CDRTool, we set an AVP called $avp(s:billing_party) and send it to RADIUS, which is then written to MySQL, which is later interpreted by CDRTool. CDRTool uses this variable to determine who the billing party is. You have to be a little clever with your scripting when you set it, however. In your case it sounds like you're logging a BYE packet, which could be sent by either party, and then interpreting the sender of that packet as the billing party. In our case, we have numerous 'if' statements surrounding BYEs to determine which of the users was the billable entity. Are you using CDRTool or rating with another technique? If an alternative, what do you use for determining who the billing party is? Jeff K -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of John Quick Sent: Wednesday, November 11, 2009 8:28 AM To: users@lists.opensips.org Subject: [OpenSIPS-Users] Radius CDR records depend who hangs up first Using Opensips version 1.6.0 with radiusclient-ng and the new AAA modules for authentication and accounting. The radius server is configured to write CDR records to a MySQL database. The records it is writing to the table radius.radacct are sometimes merged into one record per call, but other times appear as two records per call. The scenario for my test calls is: Remote IP phone Opensips Gateway Carrier mobile phone The device making the call and the dialled number are identical - all that is different is the person who hangs up first. Only when the called party (mobile phone) hangs up first do I get two CDR records. These records both have the same Call-ID (shown in the field AcctSessionID). Is this behaviour expected or does it indicate some kind of configuration problem? John Quick Smartvox Limited Web: www.smartvox.co.uk ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Transfer issue
Anca, We've given in and started building a front-end/back-end opensips configuration. The 'front end' will be based on our original script and perform the majority of the functions, the 'back end' being the B2BUA that will be involved starting at the initial invite. Is there any possibility of getting a basic sample Opensips config to go along with the XML config for the B2BUA scenario? Thanks, Jeff K -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Anca Vamanu Sent: Tuesday, November 10, 2009 1:43 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Transfer issue Hi Jeff, Jeff Kronlage wrote: Anca, Thanks for the quick reply. I tried as you suggested, on a development box, and while it didn't work, it did look a lot more like what I was expecting to see. However, I guess I am looking for more of a tack on solution for what I've already developed. The right answer may be to not support REFERs. Is there any way to modify the script scenario to -just- pick up from the REFER and still bridge in the first call leg? It's OK if the answer is 'no', I just need to know what my options are. I am sorry, but the answer is really no. The B2BUA must be in the middle of the call from the beginning. Regards, Anca Thanks, Jeff K -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Anca Vamanu Sent: Monday, November 09, 2009 7:17 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Transfer issue Hi Jeff, Jeff Kronlage wrote: Anca, The key pieces of my config file are: Loadmodule tm.so loadmodule b2b_entities.so loadmodule b2b_logic.so modparam(tm, pass_provisional_replies, 1) modparam(b2b_entities,server_address,sip:opens...@myproxyabc.com) modparam(b2b_logic, script_scenario, /usr/local/etc/opensips/refer_script.xml) modparam(b2b_entities, script_req_route, b2b_request) modparam(b2b_entities, script_reply_route, b2b_reply) ...and down in route[1], just prior to where I would normally call t_relay(): if (is_method(REFER)) { b2b_init_request(refer); exit; } No, no, no, you should no call b2b_init_request for REFER but for the initial INVITE - since the B2BUA must but itself in the middle of the call from the beginning. The contents of /usr/local/etc/opensips/refer_script.xml: ?xml version=1.0? scenario id=refer name=Handle refer at server param=0 type=script init bridge server idserver1/id /server client idclient1/id typemessage/type destination value type=initialserver1/value /destination /client /bridge /init rules request refer rule id=1 action send_reply code202/code reasonAccepted/reason /send_reply end_dialog_leg/ bridge client peer/ /client client idclient2/id destination value type=headerRefer-To/value /destination /client /bridge /action /rule /refer /request /rules /scenario So I believe I've done everything you've suggested? The only thing that was a little strange is that when I compiled from the svn, I had to edit /parser/parse_fline.h. I had found items such as INVITE_LEN in there, and my compiler complained that REFER_LEN, as well as several other variables, were undefined. I modified this section of parse_fline.h to the following: #define INVITE INVITE #define CANCEL CANCEL #define ACK ACK #define BYE BYE #define INFOINFO #define PRACK PRACK #define REFER REFER #define SUBSCRIBE SUBSCRIBE #define NOTIFY NOTIFY #define MESSAGE MESSAGE #define INVITE_LEN 6 #define CANCEL_LEN 6 #define ACK_LEN 3 #define BYE_LEN 3 #define INFO_LEN 4 #define PRACK_LEN 5 #define REFER_LEN 5 #define SUBSCRIBE_LEN 9 #define NOTIFY_LEN 6 #define MESSAGE_LEN 7 I forgot to commit the parse_fline.h file on friday. I have commited it today. You can delete yours and update from svn. Regards, Anca Please advise, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Anca Vamanu Sent: Monday, November 09, 2009 2:34 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Transfer issue Hi Jeff, It seems that the b2b module just does simple forward of REFER request in your setup. Have you loaded the refer scenario? You can find it here: http://www.opensips.org/Resources/B2buaTutorial#toc15. You have to put in in a file
Re: [OpenSIPS-Users] Transfer issue
Anca, The key pieces of my config file are: Loadmodule tm.so loadmodule b2b_entities.so loadmodule b2b_logic.so modparam(tm, pass_provisional_replies, 1) modparam(b2b_entities,server_address,sip:opens...@myproxyabc.com) modparam(b2b_logic, script_scenario, /usr/local/etc/opensips/refer_script.xml) modparam(b2b_entities, script_req_route, b2b_request) modparam(b2b_entities, script_reply_route, b2b_reply) ...and down in route[1], just prior to where I would normally call t_relay(): if (is_method(REFER)) { b2b_init_request(refer); exit; } The contents of /usr/local/etc/opensips/refer_script.xml: ?xml version=1.0? scenario id=refer name=Handle refer at server param=0 type=script init bridge server idserver1/id /server client idclient1/id typemessage/type destination value type=initialserver1/value /destination /client /bridge /init rules request refer rule id=1 action send_reply code202/code reasonAccepted/reason /send_reply end_dialog_leg/ bridge client peer/ /client client idclient2/id destination value type=headerRefer-To/value /destination /client /bridge /action /rule /refer /request /rules /scenario So I believe I've done everything you've suggested? The only thing that was a little strange is that when I compiled from the svn, I had to edit /parser/parse_fline.h. I had found items such as INVITE_LEN in there, and my compiler complained that REFER_LEN, as well as several other variables, were undefined. I modified this section of parse_fline.h to the following: #define INVITE INVITE #define CANCEL CANCEL #define ACK ACK #define BYE BYE #define INFOINFO #define PRACK PRACK #define REFER REFER #define SUBSCRIBE SUBSCRIBE #define NOTIFY NOTIFY #define MESSAGE MESSAGE #define INVITE_LEN 6 #define CANCEL_LEN 6 #define ACK_LEN 3 #define BYE_LEN 3 #define INFO_LEN 4 #define PRACK_LEN 5 #define REFER_LEN 5 #define SUBSCRIBE_LEN 9 #define NOTIFY_LEN 6 #define MESSAGE_LEN 7 Please advise, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Anca Vamanu Sent: Monday, November 09, 2009 2:34 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Transfer issue Hi Jeff, It seems that the b2b module just does simple forward of REFER request in your setup. Have you loaded the refer scenario? You can find it here: http://www.opensips.org/Resources/B2buaTutorial#toc15. You have to put in in a file and then set the 'script_scenario' parameter to the path of the file: modparam(b2b_logic, script_scenario, path_to_scenario_refer.xml) The you have to call the b2b_init_request function with the refer parameter: b2b_init_request(refer); Regards, Anca Jeff Kronlage wrote: Anca, Thanks again for your work on this. I've gotten the b2b modules working and I'm attempting to use the REFER scenario, but I'm having some confusion regarding how a REFER with a B2BUA should be handled. My test environment looks like this: UA1 (softphone) ---INVITE-- [Opensips] ---PSTN_GATEWAY(UA2)-- POTS Phone . (Session progress/OK/etc) UA1 (softphone) ---ACK--[Opensips] --- PSTN_GATEWAY(UA2) At this point, the first call is setup. UA1 (softphone) ---REFER UA2 to UA3-- [Opensips] **b2b module called** B2B ---REFER B2B to UA3-- PSTN_GATEWAY (UA2) B2B --404 NOT FOUND-- PSTN_GATEWAY (UA2) B2B ---404 NOT FOUND- UA1 (softphone) Obviously this fails. Note this same problem occurs on two completely separate gateways with different hardware. My questions are: 1) Shouldn't the b2b scenario send an INVITE off to UA3, wait for the OK/ACK, then simply REFER UA2 to UA3? It seems to me that a B2B - UA3 refer (which is what I appear to be getting) is out-of-dialog, and many gateways can't start a dialog with a REFER anyway. 2) If not, any ideas on what I'm doing wrong? The pertinent parts of my sip dump are below, beginning with the first REFER, are below: REFER sip:18002441...@208.94.157.10:5060;transport=udp SIP/2.0 Via: SIP/2.0/UDP 70.57.173.114:63390;branch=z9hG4bK-d8754z-501a700165366947-1---d8754z-;rport Max-Forwards: 70 Route: sip:64.111.16.50;lr;ftag=a837e85e;did=847.0253b4b4 Contact: sip:7194760...@70.57.173.114:63390 To: sip:18002441...@myproxyabc:5060;tag=b9d5ed0-13c4-4af6e7b5-46585e8b-24ef0427 From: 3CXPhonesip:7194760...@myproxyabc.com:5060;tag=a837e85e Call-ID: NDY4YWZhMzRjMDQzZmM2MTU0YTg5YzRlZmFlMzU5NDc. CSeq: 4
Re: [OpenSIPS-Users] Transfer issue
Anca, Thanks for the quick reply. I tried as you suggested, on a development box, and while it didn't work, it did look a lot more like what I was expecting to see. However, I guess I am looking for more of a tack on solution for what I've already developed. The right answer may be to not support REFERs. Is there any way to modify the script scenario to -just- pick up from the REFER and still bridge in the first call leg? It's OK if the answer is 'no', I just need to know what my options are. Thanks, Jeff K -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Anca Vamanu Sent: Monday, November 09, 2009 7:17 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Transfer issue Hi Jeff, Jeff Kronlage wrote: Anca, The key pieces of my config file are: Loadmodule tm.so loadmodule b2b_entities.so loadmodule b2b_logic.so modparam(tm, pass_provisional_replies, 1) modparam(b2b_entities,server_address,sip:opens...@myproxyabc.com) modparam(b2b_logic, script_scenario, /usr/local/etc/opensips/refer_script.xml) modparam(b2b_entities, script_req_route, b2b_request) modparam(b2b_entities, script_reply_route, b2b_reply) ...and down in route[1], just prior to where I would normally call t_relay(): if (is_method(REFER)) { b2b_init_request(refer); exit; } No, no, no, you should no call b2b_init_request for REFER but for the initial INVITE - since the B2BUA must but itself in the middle of the call from the beginning. The contents of /usr/local/etc/opensips/refer_script.xml: ?xml version=1.0? scenario id=refer name=Handle refer at server param=0 type=script init bridge server idserver1/id /server client idclient1/id typemessage/type destination value type=initialserver1/value /destination /client /bridge /init rules request refer rule id=1 action send_reply code202/code reasonAccepted/reason /send_reply end_dialog_leg/ bridge client peer/ /client client idclient2/id destination value type=headerRefer-To/value /destination /client /bridge /action /rule /refer /request /rules /scenario So I believe I've done everything you've suggested? The only thing that was a little strange is that when I compiled from the svn, I had to edit /parser/parse_fline.h. I had found items such as INVITE_LEN in there, and my compiler complained that REFER_LEN, as well as several other variables, were undefined. I modified this section of parse_fline.h to the following: #define INVITE INVITE #define CANCEL CANCEL #define ACK ACK #define BYE BYE #define INFOINFO #define PRACK PRACK #define REFER REFER #define SUBSCRIBE SUBSCRIBE #define NOTIFY NOTIFY #define MESSAGE MESSAGE #define INVITE_LEN 6 #define CANCEL_LEN 6 #define ACK_LEN 3 #define BYE_LEN 3 #define INFO_LEN 4 #define PRACK_LEN 5 #define REFER_LEN 5 #define SUBSCRIBE_LEN 9 #define NOTIFY_LEN 6 #define MESSAGE_LEN 7 I forgot to commit the parse_fline.h file on friday. I have commited it today. You can delete yours and update from svn. Regards, Anca Please advise, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Anca Vamanu Sent: Monday, November 09, 2009 2:34 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Transfer issue Hi Jeff, It seems that the b2b module just does simple forward of REFER request in your setup. Have you loaded the refer scenario? You can find it here: http://www.opensips.org/Resources/B2buaTutorial#toc15. You have to put in in a file and then set the 'script_scenario' parameter to the path of the file: modparam(b2b_logic, script_scenario, path_to_scenario_refer.xml) The you have to call the b2b_init_request function with the refer parameter: b2b_init_request(refer); Regards, Anca Jeff Kronlage wrote: Anca, Thanks again for your work on this. I've gotten the b2b modules working and I'm attempting to use the REFER scenario, but I'm having some confusion regarding how a REFER with a B2BUA should be handled. My test environment looks like this: UA1 (softphone) ---INVITE-- [Opensips] ---PSTN_GATEWAY(UA2)-- POTS Phone . (Session progress/OK/etc) UA1 (softphone) ---ACK--[Opensips] --- PSTN_GATEWAY(UA2) At this point, the first call is setup. UA1 (softphone) ---REFER UA2 to UA3-- [Opensips] **b2b module called** B2B ---REFER B2B to UA3
Re: [OpenSIPS-Users] Transfer issue
Anca, Thanks again for your work on this. I've gotten the b2b modules working and I'm attempting to use the REFER scenario, but I'm having some confusion regarding how a REFER with a B2BUA should be handled. My test environment looks like this: UA1 (softphone) ---INVITE-- [Opensips] ---PSTN_GATEWAY(UA2)-- POTS Phone . (Session progress/OK/etc) UA1 (softphone) ---ACK--[Opensips] --- PSTN_GATEWAY(UA2) At this point, the first call is setup. UA1 (softphone) ---REFER UA2 to UA3-- [Opensips] **b2b module called** B2B ---REFER B2B to UA3-- PSTN_GATEWAY (UA2) B2B --404 NOT FOUND-- PSTN_GATEWAY (UA2) B2B ---404 NOT FOUND- UA1 (softphone) Obviously this fails. Note this same problem occurs on two completely separate gateways with different hardware. My questions are: 1) Shouldn't the b2b scenario send an INVITE off to UA3, wait for the OK/ACK, then simply REFER UA2 to UA3? It seems to me that a B2B - UA3 refer (which is what I appear to be getting) is out-of-dialog, and many gateways can't start a dialog with a REFER anyway. 2) If not, any ideas on what I'm doing wrong? The pertinent parts of my sip dump are below, beginning with the first REFER, are below: REFER sip:18002441...@208.94.157.10:5060;transport=udp SIP/2.0 Via: SIP/2.0/UDP 70.57.173.114:63390;branch=z9hG4bK-d8754z-501a700165366947-1---d8754z-;rport Max-Forwards: 70 Route: sip:64.111.16.50;lr;ftag=a837e85e;did=847.0253b4b4 Contact: sip:7194760...@70.57.173.114:63390 To: sip:18002441...@myproxyabc:5060;tag=b9d5ed0-13c4-4af6e7b5-46585e8b-24ef0427 From: 3CXPhonesip:7194760...@myproxyabc.com:5060;tag=a837e85e Call-ID: NDY4YWZhMzRjMDQzZmM2MTU0YTg5YzRlZmFlMzU5NDc. CSeq: 4 REFER Proxy-Authorization: omitted User-Agent: 3CXVoipPhone 4.0.9530.0 Refer-To: sip:18887779...@prxdev.sip.data102.com:5060 Referred-By: 3CXPhonesip:7194760...@prxdev.sip.data102.com:5060 Content-Length: 0 SIP/2.0 100 Trying Via: SIP/2.0/UDP 70.57.173.114:63390;branch=z9hG4bK-d8754z-501a700165366947-1---d8754z-;rport=63390 To: sip:18002441...@myproxyabc.com:5060;tag=b9d5ed0-13c4-4af6e7b5-46585e8b-24ef0427 From: 3CXPhonesip:7194760...@myproxyabc.com:5060;tag=a837e85e Call-ID: NDY4YWZhMzRjMDQzZmM2MTU0YTg5YzRlZmFlMzU5NDc. CSeq: 4 REFER Server: OpenSIPS (1.6.1-notls (i386/linux)) Content-Length: 0 REFER sip:18002441...@208.94.157.10:5060 SIP/2.0 Via: SIP/2.0/UDP 64.111.16.50;branch=z9hG4bK7ea5.271c79b2.0 To: sip:18002441...@208.94.157.10:5060 From: sip:7194760...@myproxyabc.com:5060;tag=b9952cfdcb0f3026fcffe5bf74779956-dca7 CSeq: 2 REFER Call-ID: B2B.462.0.1257695261 Content-Length: 0 User-Agent: OpenSIPS (1.6.1-notls (i386/linux)) Contact: sip:opens...@myproxyabc.com:5060 SIP/2.0 404 Not Found From: sip:7194760...@myproxyabc.com:5060;tag=b9952cfdcb0f3026fcffe5bf74779956-dca7 To: sip:18002441...@208.94.157.10:5060;tag=b9d5ed0-13c4-4af6e7c2-465890d5-3ca2cb05 Call-ID: B2B.462.0.1257695261 CSeq: 2 REFER Via: SIP/2.0/UDP 64.111.16.50;branch=z9hG4bK7ea5.271c79b2.0 Content-Length: 0 As always, help is much appreciated! Jeff K -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Anca Vamanu Sent: Friday, November 06, 2009 9:49 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Transfer issue Hi, The REFER handing support has been added in B2BUA. Please update from svn to use this feature. To enable it you have to load a simple scenario document that describes the behavior of the B2BUA when a REFER message is received and then call b2b_init_request(refer) for the initial Invite message. I have also updated the documentation page and you can find there also the scenario document for this feature: http://www.opensips.org/Resources/B2buaTutorial#toc15. Regards, Anca Jeff Kronlage wrote: Hi Bogdan, Thanks for the fantastic news. I don't suppose you have any samples of how to interpret a REFER and perform a transfer? I've started pouring through the documentation for the B2BUA, but I'm still grinding through it :) Thanks, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Saturday, October 24, 2009 11:18 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Transfer issue Hi Iñaki, Actually this is why the B2BUA module was designed in opensips - in most of the cases you need to control/change the dialog(s) but without any media dependencies/penalties (like you have now in most of the IP-PBXs). So you actually can have a highly scalable signalling B2BUA - the opensips module could
Re: [OpenSIPS-Users] Modify SDP
I use Nagios for such things... - Is my fly down? [5 minute interval] - Do I have a cowlick? [3 minute interval] Etc.. :P Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Jeff Pyle Sent: Wednesday, November 04, 2009 9:04 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Modify SDP I find that throughout the day my shoelaces come untied at unpredictable intervals. Is it possible to modify the dialog module to keep state on them to notify me when it happens? Perhaps a Perl script to re-tie them? I crack me up... On 11/4/09 10:08 AM, Iñaki Baz Castillo i...@aliax.net wrote: El Miércoles, 4 de Noviembre de 2009, Victor Pascual Avila escribió: When a SIP proxy left being a SIP proxy? At the very right moment that fundamentalism was replaced by pragmatism and operational requirements. Thanks for your reply. I need a voicemail system for my opensips, could you please code such a module? Also a IVR module would be great. I believe you have some confusion about the meaning of operational requirements. I'd would also require a Skype-SIP gateway module since some of my clients use Skype. How long would it take to develop this pragmatism and operational requirement (for free as I'm opensource user)? XDDD ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] allow_trusted - easy question
Hello all, Easy question - allow_trusted() has obviously been removed from v1.6. What's an equivalent function, and is there anything documenting the change? -- Jeff Kronlage Senior IT Engineer, Data102 j...@data102.com / http://www.data102.com ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] allow_trusted - easy question
Nevermind, just found the answer 'the following functions were introduced: check_address(), check_source_address(), get_source_group() to replace allow_address(), allow_source_address(), allow_trusted()' -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com / http://www.data102.com -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Jeff Kronlage Sent: Tuesday, October 27, 2009 1:34 PM To: OpenSIPS users mailling list Subject: [OpenSIPS-Users] allow_trusted - easy question Hello all, Easy question - allow_trusted() has obviously been removed from v1.6. What's an equivalent function, and is there anything documenting the change? -- Jeff Kronlage Senior IT Engineer, Data102 j...@data102.com / http://www.data102.com ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Bug in dialplan 1.6
Dialplan keeps reporting that I have no data in the db... turning on MySQL logging produces the following: select dpid,pr,match_op,match_exp,match_len,subst_exp,repl_exp,attrs from dialplan order by pr; Note the extra space after the word dialplan, just before order by pr. Eliminating this space makes the query return results. Jeff K Data102 ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Bug in dialplan 1.6
Getting good at responding to my own posts today- Wacky. Doing a minor upgrade to MySQL fixed the problem -- seemed strange that a space would've caused that issue. Regardless, it might be a good idea to eliminate the space? -- Jeff Kronlage Senior IT Engineer, Data102 j...@data102.com / http://www.data102.com -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Jeff Kronlage Sent: Tuesday, October 27, 2009 2:56 PM To: OpenSIPS users mailling list Subject: [OpenSIPS-Users] Bug in dialplan 1.6 Dialplan keeps reporting that I have no data in the db... turning on MySQL logging produces the following: select dpid,pr,match_op,match_exp,match_len,subst_exp,repl_exp,attrs from dialplan order by pr; Note the extra space after the word dialplan, just before order by pr. Eliminating this space makes the query return results. Jeff K Data102 ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Transfer issue
Hi Bogdan, Thanks for the fantastic news. I don't suppose you have any samples of how to interpret a REFER and perform a transfer? I've started pouring through the documentation for the B2BUA, but I'm still grinding through it :) Thanks, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Saturday, October 24, 2009 11:18 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Transfer issue Hi Iñaki, Actually this is why the B2BUA module was designed in opensips - in most of the cases you need to control/change the dialog(s) but without any media dependencies/penalties (like you have now in most of the IP-PBXs). So you actually can have a highly scalable signalling B2BUA - the opensips module could be used to locally (on opensips) interpret the REFER and do the call transfer, totally transparent to the other party. Regards, Bogdan Iñaki Baz Castillo wrote: El Sábado, 24 de Octubre de 2009, Jeff Kronlage escribió: Our setup has been initially engineered for thousands of concurrent calls, and we're hoping to avoid having a dozen Asterisk machines :) What you are looking for is the dream all want: a scalable SIP B2BUA (no media handling), so a cluster of these B2BUA's would be located behind a proxy (which does load balancing and failover). And it would be greater if the B2BUA share information (about current dialogs and so) in some way (memcache? common database?...). You could implement it with SipServlets (see Sailin SIP application server or others), or FreeSwitch which allows calls without handling the media... Of course, Asterisk is not the most suitable solution: it involves media handling (canreinvite is a hack), it has a very poor SIP stack... and basically it's designed to be a single PBX box. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Transfer issue
I too am interested in this issue. Most of our users have PBXs that generate the second INVITE out-of-the-box, but we're about to move into residential service (hence my slew of NAT-related posts recently), and I'd like to have transfers/REFERs working natively in OpenSIPS without having to involve Asterisk. My biggest question, not having moved to 1.6 or looked into the B2BUA module, is: Is it possible to have opensips generate a 2nd INVITE (additional call leg) by capturing the REFER and using the new B2BUA module? My secondary question, is, if not, would anyone be willing to post some basic documentation on how this can be achieved with Asterisk sitting behind Opensips (i.e. Opensips holds the registration, and does the majority of the call processing, and only sends packets/calls to Asterisk for features that a proxy isn't supposed to handle?) Cheers, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Peter den Hartog Sent: Friday, October 23, 2009 7:22 AM To: users@lists.opensips.org Subject: Re: [OpenSIPS-Users] Transfer issue ok, but i want to have my users registered to opensips. And what happend before was this - call from outside - asterisk did a dial to 101 in opensips - 101 ringed i had a call.. transfer this call from 101 to 102 - i've got a new call on line two from phone 101 to 102, but the call from the outside, was on hold on 101 on line 1.. Blind transfers work perfectly, but not the announced transfers. they just go on hold, and when i press transfer after telling 102 that i have a call from 101, the call just stays on 101 in hold. How did you fix this? Do you have working announced transfers? Iñaki Baz Castillo wrote: El Viernes, 23 de Octubre de 2009, Peter den Hartog escribió: Oke that is clear to me, So if i want the transfer function, i have to use a asterisk as a gateway (or any other pbx). But how do you create this new channel? i tried this before, with an asterisk as pbx, that received the outside calls... i've created a dial from asterisk to my opensips extention, but this is clearly wrong because if i try a transfer then, he tries it on the asterisk.. result the new destination not found.. If destination not found that means that your dialplan is not correctly configured. If user1 transfer to Asterisk to user2, this means that Asterisk will look for user2 extension in the context of OpenSIPs peer. So exten = user2 must exist there. What i understand from your story is that asterisk shouldn't do a dial, but a invite to the opensips extention, am i right? No, it's the same doing a dial and sending an invite. Asterisk just can send an INVITE. Any ideas on how to do this? There are some doucments/howtos in OpenSIPS wiki about integration woth Asterisk. Not sure if they fully cover users integration (so transfer is possible and so). However I've this exact scenario working perfectly. It's just a taste of configuration (peers and dialplan in Asterisk). Iñaki Baz Castillo wrote: El Viernes, 23 de Octubre de 2009, Peter den Hartog escribió: yeah i understand that, but why is it sending this refer to the sip trunk? i mean.. it's an outside call going to a local extention, i want to transfer from 1 local extention to another, so why isn't my opensips doing this refer? Sorry but you don't seem to understand how a REFER transfer works: 1) Your PSTN provider sends an INVITE to your proxy (opensips). 2) OpenSIPS routes the call to user1. 3) User1 answers the call and so. 4) User1 wants to transfer the call to user2. 5) User1 sends a REFER to *the PSTN provider* (through OpenSIPS as any in- dialog request). 6) The PSTN provider accepts the refer so *initiates* a new call to user2. Of course point 5 will NEVER work with a PSTN provider (and shouldn't work at all!). This is why PBX/B2BUA do exist: to enable PBX features. If you just have a proxy and receive calls from a PSTN you could NEVER transfer that call to other user. Having a PBX/B2BUA the sceario changes and allows transference. An example scenario: 1) Your PSTN provider sends an INVITE to your PBX (B2BUA). 2) The PBX generates a *new* INVITE (a different dialog) to OpenSIPS. 3) OpenSIPS routes the call to user1. 4) User1 answers the call. 5) User1 wants to transfer the call to user2. 6) User1 sends a REFER to *the PBX* (through OpenSIPS as any in-dialog request). 7) The PBX provider accepts the refer so *initiates* a new call to user2. 8) The PSTN provider didn't realize, at all, about the transference. -- Iñaki Baz Castillo i...@aliax.net ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -- View this message in context:
Re: [OpenSIPS-Users] Transfer issue
I'd like to be certain I understand from these last few posts regarding this topic- The suggestion is to use Asterisk 'behind' Opensips, transferring calls to it only when a B2BUA is necessary? I certainly understand not wanting to post a config, but can anyone share a general idea of how this is accomplished? I'm having a hard time picturing how to send Asterisk an out-of-context REFER, while Opensips 'held' the call up to that point. Perhaps I'm over-thinking it. Thanks, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Peter den Hartog Sent: Friday, October 23, 2009 3:15 PM To: users@lists.opensips.org Subject: Re: [OpenSIPS-Users] Transfer issue Hello flavio, thank you for your response. It makes sence to me, so i have to use asterisk as a gateway infront of opensips, and let it handle outside domains to do stuff like invites/refers.. The parameter your talking about is a Asterisk parameter right? I will look in to this. Thank you for the information, it's a tricky journey into opensips, but i'm getting there :D Flavio Goncalves wrote: Hi Peter, You need to have support for REFER in all the SIP components, UACs and Gateways. Your SIP provider seems to be refusing your REFERS with the message 501 Not Implemented. The only way to workaround (as far as I know) is to use a gateway before your SIP provider that implements the REFER messages. You can do this using Asterisk. Handle the REFERs in the same way you do with INVITEs, there is a parameter called allowexternaldomains and it needs to be set to yes. The security for REFERs is the same as the one used for INVITEs. Regards, Flavio E. Goncalves At 08:39 AM 10/23/2009, you wrote: I moved my opensips in the network, it's now directly connected to my sip trunk, i can call inside, i can call outside. I can transfer inside. But when i try to tranfser an outside nummer i get to see this ngrep: U 90.145.5.96:5060 - 90.145.5.83:5060 REFER sip:sip_...@217.112.112.114 SIP/2.0. Via: SIP/2.0/UDP 90.145.5.96;branch=z9hG4bK80db89a3AE4DF976. From: sip:0031851110...@77.73.226.254:5060;user=phone;tag=519E7E95-45526C6 0. To: sip:0624469...@217.112.112.114;user=phone;tag=202954455. Route: sip:90.145.5.83;lr=on, sip:77.73.226.254;lr=on;ftag=202954455;did=4b1.a8f7e0a5. CSeq: 2 REFER. Call-ID: 1975939...@217.112.112.114. Contact: sip:1...@90.145.5.96. User-Agent: PolycomSoundPointIP-SPIP_430-UA/1.6.7.0133. Refer-To: sip:1...@90.145.5.83:5060. Referred-By: sip:1...@90.145.5.83. Max-Forwards: 70. Content-Length: 0. . U 90.145.5.83:5060 - 77.73.226.254:5060 REFER sip:sip_...@217.112.112.114 SIP/2.0. Via: SIP/2.0/UDP 90.145.5.83;branch=z9hG4bK0582.ce0b1427.0. Via: SIP/2.0/UDP 90.145.5.96;branch=z9hG4bK80db89a3AE4DF976. From: sip:0031851110...@77.73.226.254:5060;user=phone;tag=519E7E95-45526C6 0. To: sip:0624469...@217.112.112.114;user=phone;tag=202954455. Route: sip:77.73.226.254;lr=on;ftag=202954455;did=4b1.a8f7e0a5. CSeq: 2 REFER. Call-ID: 1975939...@217.112.112.114. Contact: sip:1...@90.145.5.96. User-Agent: PolycomSoundPointIP-SPIP_430-UA/1.6.7.0133. Refer-To: sip:1...@90.145.5.83:5060. Referred-By: sip:1...@90.145.5.83. Max-Forwards: 69. Content-Length: 0. . U 77.73.226.254:5060 - 90.145.5.83:5060 SIP/2.0 501 Not Implemented. Via: SIP/2.0/UDP 90.145.5.83;branch=z9hG4bK0582.ce0b1427.0. Via: SIP/2.0/UDP 90.145.5.96;branch=z9hG4bK80db89a3AE4DF976. From: sip:0031851110...@77.73.226.254:5060;user=phone;tag=519E7E95-45526C6 0. To: sip:0624469...@217.112.112.114;user=phone;tag=202954455. Call-ID: 1975939...@217.112.112.114. CSeq: 2 REFER. Content-Length: 0. . U 90.145.5.83:5060 - 90.145.5.96:5060 SIP/2.0 501 Not Implemented. Via: SIP/2.0/UDP 90.145.5.96;branch=z9hG4bK80db89a3AE4DF976. From: sip:0031851110...@77.73.226.254:5060;user=phone;tag=519E7E95-45526C6 0. To: sip:0624469...@217.112.112.114;user=phone;tag=202954455. Call-ID: 1975939...@217.112.112.114. CSeq: 2 REFER. Content-Length: 0. . It makes sense to me that i forgot something in my config, a refer module or something? any toughts/pushes in the right direction would be greatly appreciated! best regards. -- View this message in context: http://n2.nabble.com/Transfer-issue-tp3877950p3877950.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users -- View this message in context: http://n2.nabble.com/Transfer-issue-tp3877950p3881352.html Sent from the OpenSIPS - Users mailing list archive at Nabble.com. ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Transfer issue
I follow this, but -and please correct me where I'm misunderstanding- isn't the point of using a Proxy versus a B2BUA is that it's more lightweight and scalable? It seems with this setup every call ends up routed through Asterisk on the initial INVITE, simply so that when a REFER potentially comes later in the dialog, it can handle it. Our setup has been initially engineered for thousands of concurrent calls, and we're hoping to avoid having a dozen Asterisk machines :) Our goal is to design something like: UA -- Opensips -- Our PSTN gateways That could dynamically turn into, on the fly: UA -- Opensips -- B2BUA -- Our PSTN Gateway We haven't found a clean way of doing this, unfortunately... It may just end up being a hack on Opensips 1.6 if that might work. Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Iñaki Baz Castillo Sent: Friday, October 23, 2009 5:38 PM To: users@lists.opensips.org Subject: Re: [OpenSIPS-Users] Transfer issue El Sábado, 24 de Octubre de 2009, Jeff Kronlage escribió: The suggestion is to use Asterisk 'behind' Opensips, transferring calls to it only when a B2BUA is necessary? Not exactly, see below. I certainly understand not wanting to post a config, but can anyone share a general idea of how this is accomplished? I'm having a hard time picturing how to send Asterisk an out-of-context REFER, Why out-of-context REFER?? while Opensips 'held' the call up to that point. Perhaps I'm over-thinking it. - user1 sends an INVITE to OpenSIPS with RURI sip:us...@domain. - OpenSIPS doesn do a lookup, instead it routes the INVITE to Asterisk *without* changing the RURI username (user2). - Asterisk receives a call from peer [opensips] to exten user2. - Asterisk ejecutes Dial and generates an INVITE with RURI user2 and sends it to OpenSIPS. - OpenSIPS receives the INVITE and, since it comes from Asterisk, now it *does* the lookup so retrieves the location(s) of user2, and sends there the INVITE. - So now we have 2 calls: - user1 speaking with Asterisk (through OpenSIPS). - Asterisk speaking with user2 (through OpenSIPS). - Now user1 wants to transfer the call to user3 so it sends an in-dialog REFER (with Refer-To: sip:us...@domain) to Asterisk. - Asterisk accepts it and generates an INVITE to user3 sending it to OpenSIPS. - OpenSIPS does the loockup for user3 and routes there the new INVITE from Asterisk. - etc etc etc... and the transference (blink or attended is performed as usual). Does it help you? -- Iñaki Baz Castillo i...@aliax.net ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] NAT fixup question
Bogdan, The pertinent part of my config file contains this snippet: $var(ruriuser) = $rU; if (has_totag()) { xlog(DEBUG1 ru is $ru, du is $du); if (loose_route()) { xlog(DEBUG2 ru is $ru, du is $du); $rU = $var(ruriuser); #Hack job Between my first xlog and second xlog is where the change happens to the $rU value. I reset the $rU value at the bottom in a terrible hack job that's getting my couple of NAT users by for the moment, but I'm obviously not happy with the way I'm handling it. Looking at the documentation for loose_route -- The name is a little bit confusing, as this function also routes requests which are in the strict router format. Does loose_route() return true if strict routing? If not, then I imagine that's not what's happening, because my 2nd xlog wouldn't even execute Also, I don't have my IP address in my local domains, and I'm not using aliases. Thanks, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Tuesday, October 20, 2009 10:15 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] NAT fixup question HI Jeff, Just a wild guess - looking at the RURI and ROUTE hdrs, I would say your opensips is doing strict routing and not loose routing - this may happen when the IP in RURI is recognized as local SIP domain So, have you added 64.111.17.11 IP as alias in script or in domain table ? if so, please remove it! Regards, Bogdan Jeff Kronlage wrote: Please also note this only happens on reinvites - the initial invite is fine. -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Jeff Kronlage Sent: Monday, October 19, 2009 10:33 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] NAT fixup question Bogdan, I wish I could post something useful. I've been tinkering with this all evening, the catch is that one of our sip providers does things a tad unusual and I have a number of normalization procedures in place that make it hard to output something useful for this. I can provide this information - The inbound packet is: 22:19:32.479151 IP (tos 0x0, ttl 249, id 1369, offset 0, flags [none], proto UDP (17), length 539) 64.111.16.10.45463 64.YYY.XX.XX.5060: SIP, length: 511 ACK sip:719330x...@64.111.17.11:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.1.105:5060;branch=z9hG4bK-c6f3cdea From: sip:719358z...@proxy.sip.data102.com;tag=5d371768e81ef5fci0 To: sip:719330x...@proxy.sip.data102.com;tag=3442594C-21D0 Call-ID: 948e57d9-bc6611de-ae38b8a5-3ada3...@64.111.17.2 CSeq: 101 ACK Max-Forwards: 70 Route: sip:64.YYY.XX.XX;lr=on;ftag=3442594C-21D0;did=03f.4363e5f6 Contact: 719358 sip:719358z...@192.168.1.105:5060 User-Agent: Linksys/SPA2102-3.3.6 Content-Length: 0 After I receive this packet and loose_route() is called, the RURI (specifically the value of $ru, as confirmed via xlog) is set to: sip:64.YYY.XX.XX;lr=on;ftag=3444FCF0-2256;did=10a.beb781a3 (note this is identical to the Route field - not sure how I missed that prior to your mentioning it) A debug value of 4 produces: DBG:rr:after_loose: Topmost route URI: 'sip:64.YYY.XX.XX;lr=on;ftag=33F412AC-1CD1;did=a35.17b53e66' is me (not sure if that is of any use) I'm certain this is too vague to produce a solid answer, but any idea where I might look next? Thanks, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 9:21 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] NAT fixup question RURI has nothing to do with the VIA part.. Also RURI is not to be changed during loose_route(), only if you have a strict router proxy in front of youmaybe you can post the inbound and outbound request (to see how the loose_route() is done) Regards, Bogdan Jeff Kronlage wrote: The RURI. Thanks, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 9:13 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] NAT fixup question Jeff, the VIA hdr does not require mangling - the addition of the received param is enough to handle nat issues. So the VIA you posted is correct form NAT traversal point of view. Regarding the user part of the URI - what URI you are talking about? RURI ? TO / FROM uri? Contact URI ? Regards, Bogdan Jeff Kronlage wrote: Thanks Bogdan, An unrelated question: Does anything special need to be done with via statements when implementing NAT transversal? Fix_nated_contact
Re: [OpenSIPS-Users] Additional info on potential registration issue
Yes, shared location table over multiple servers. -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Sunday, October 18, 2009 10:33 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Additional info on potential registration issue Hi Jeff, Do you use a shared location table (via multiple registrar servers) ? Regards, Bogdan Jeff Kronlage wrote: I'm getting this over and over in my syslog: WARNING:usrloc:get_all_db_ucontacts: non-local socket udp:HI.DDE.N.12:5060...ignoring Thanks, Jeff ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Additional info on potential registration issue
Usrloc mode is 3. -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com / http://www.data102.com -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 11:32 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Additional info on potential registration issue So, this is the problem - each opensips instance loads only the usrloc records that have the a local socket corresponding to that instance. In other words, if the record was saved by the other instance, opensips will not load it. what db_mode do you use for usrloc? Regards, Bogdan Jeff Kronlage wrote: Yes, shared location table over multiple servers. -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Sunday, October 18, 2009 10:33 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Additional info on potential registration issue Hi Jeff, Do you use a shared location table (via multiple registrar servers) ? Regards, Bogdan Jeff Kronlage wrote: I'm getting this over and over in my syslog: WARNING:usrloc:get_all_db_ucontacts: non-local socket udp:HI.DDE.N.12:5060...ignoring Thanks, Jeff ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] NAT fixup question
Thanks Bogdan, An unrelated question: Does anything special need to be done with via statements when implementing NAT transversal? Fix_nated_contact() takes care of the contact field for me, but I still end up with: Via: SIP/2.0/UDP 192.168.1.105:5060;rport=42080;received=64.YYY.XX.XX;branch=z9hG4bK-e4e5 cd84 I'm having some random problems with the user part of the URI randomly vanishing after I call loose_route() when NAT is involved, and I'm thinking these are related. Thanks, -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com / http://www.data102.com -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 4:07 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Additional info on potential registration issue so DB ONLY mode..simply ignore the warning (see its meaning in my previous post) . The contacts will still be shared, but the socket information discarded. Regards, Bogdan Jeff Kronlage wrote: Usrloc mode is 3. -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com / http://www.data102.com -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 11:32 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Additional info on potential registration issue So, this is the problem - each opensips instance loads only the usrloc records that have the a local socket corresponding to that instance. In other words, if the record was saved by the other instance, opensips will not load it. what db_mode do you use for usrloc? Regards, Bogdan Jeff Kronlage wrote: Yes, shared location table over multiple servers. -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Sunday, October 18, 2009 10:33 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Additional info on potential registration issue Hi Jeff, Do you use a shared location table (via multiple registrar servers) ? Regards, Bogdan Jeff Kronlage wrote: I'm getting this over and over in my syslog: WARNING:usrloc:get_all_db_ucontacts: non-local socket udp:HI.DDE.N.12:5060...ignoring Thanks, Jeff ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] NAT fixup question
Bogdan, I wish I could post something useful. I've been tinkering with this all evening, the catch is that one of our sip providers does things a tad unusual and I have a number of normalization procedures in place that make it hard to output something useful for this. I can provide this information - The inbound packet is: 22:19:32.479151 IP (tos 0x0, ttl 249, id 1369, offset 0, flags [none], proto UDP (17), length 539) 64.111.16.10.45463 64.YYY.XX.XX.5060: SIP, length: 511 ACK sip:719330x...@64.111.17.11:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.1.105:5060;branch=z9hG4bK-c6f3cdea From: sip:719358z...@proxy.sip.data102.com;tag=5d371768e81ef5fci0 To: sip:719330x...@proxy.sip.data102.com;tag=3442594C-21D0 Call-ID: 948e57d9-bc6611de-ae38b8a5-3ada3...@64.111.17.2 CSeq: 101 ACK Max-Forwards: 70 Route: sip:64.YYY.XX.XX;lr=on;ftag=3442594C-21D0;did=03f.4363e5f6 Contact: 719358 sip:719358z...@192.168.1.105:5060 User-Agent: Linksys/SPA2102-3.3.6 Content-Length: 0 After I receive this packet and loose_route() is called, the RURI (specifically the value of $ru, as confirmed via xlog) is set to: sip:64.YYY.XX.XX;lr=on;ftag=3444FCF0-2256;did=10a.beb781a3 (note this is identical to the Route field - not sure how I missed that prior to your mentioning it) A debug value of 4 produces: DBG:rr:after_loose: Topmost route URI: 'sip:64.YYY.XX.XX;lr=on;ftag=33F412AC-1CD1;did=a35.17b53e66' is me (not sure if that is of any use) I'm certain this is too vague to produce a solid answer, but any idea where I might look next? Thanks, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 9:21 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] NAT fixup question RURI has nothing to do with the VIA part.. Also RURI is not to be changed during loose_route(), only if you have a strict router proxy in front of youmaybe you can post the inbound and outbound request (to see how the loose_route() is done) Regards, Bogdan Jeff Kronlage wrote: The RURI. Thanks, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 9:13 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] NAT fixup question Jeff, the VIA hdr does not require mangling - the addition of the received param is enough to handle nat issues. So the VIA you posted is correct form NAT traversal point of view. Regarding the user part of the URI - what URI you are talking about? RURI ? TO / FROM uri? Contact URI ? Regards, Bogdan Jeff Kronlage wrote: Thanks Bogdan, An unrelated question: Does anything special need to be done with via statements when implementing NAT transversal? Fix_nated_contact() takes care of the contact field for me, but I still end up with: Via: SIP/2.0/UDP 192.168.1.105:5060;rport=42080;received=64.YYY.XX.XX;branch=z9hG4bK-e4e5 cd84 I'm having some random problems with the user part of the URI randomly vanishing after I call loose_route() when NAT is involved, and I'm thinking these are related. Thanks, -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com / http://www.data102.com -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 4:07 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Additional info on potential registration issue so DB ONLY mode..simply ignore the warning (see its meaning in my previous post) . The contacts will still be shared, but the socket information discarded. Regards, Bogdan Jeff Kronlage wrote: Usrloc mode is 3. -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com / http://www.data102.com -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 11:32 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Additional info on potential registration issue So, this is the problem - each opensips instance loads only the usrloc records that have the a local socket corresponding to that instance. In other words, if the record was saved by the other instance, opensips will not load it. what db_mode do you use for usrloc? Regards, Bogdan Jeff
Re: [OpenSIPS-Users] NAT fixup question
Please also note this only happens on reinvites - the initial invite is fine. -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Jeff Kronlage Sent: Monday, October 19, 2009 10:33 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] NAT fixup question Bogdan, I wish I could post something useful. I've been tinkering with this all evening, the catch is that one of our sip providers does things a tad unusual and I have a number of normalization procedures in place that make it hard to output something useful for this. I can provide this information - The inbound packet is: 22:19:32.479151 IP (tos 0x0, ttl 249, id 1369, offset 0, flags [none], proto UDP (17), length 539) 64.111.16.10.45463 64.YYY.XX.XX.5060: SIP, length: 511 ACK sip:719330x...@64.111.17.11:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.1.105:5060;branch=z9hG4bK-c6f3cdea From: sip:719358z...@proxy.sip.data102.com;tag=5d371768e81ef5fci0 To: sip:719330x...@proxy.sip.data102.com;tag=3442594C-21D0 Call-ID: 948e57d9-bc6611de-ae38b8a5-3ada3...@64.111.17.2 CSeq: 101 ACK Max-Forwards: 70 Route: sip:64.YYY.XX.XX;lr=on;ftag=3442594C-21D0;did=03f.4363e5f6 Contact: 719358 sip:719358z...@192.168.1.105:5060 User-Agent: Linksys/SPA2102-3.3.6 Content-Length: 0 After I receive this packet and loose_route() is called, the RURI (specifically the value of $ru, as confirmed via xlog) is set to: sip:64.YYY.XX.XX;lr=on;ftag=3444FCF0-2256;did=10a.beb781a3 (note this is identical to the Route field - not sure how I missed that prior to your mentioning it) A debug value of 4 produces: DBG:rr:after_loose: Topmost route URI: 'sip:64.YYY.XX.XX;lr=on;ftag=33F412AC-1CD1;did=a35.17b53e66' is me (not sure if that is of any use) I'm certain this is too vague to produce a solid answer, but any idea where I might look next? Thanks, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 9:21 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] NAT fixup question RURI has nothing to do with the VIA part.. Also RURI is not to be changed during loose_route(), only if you have a strict router proxy in front of youmaybe you can post the inbound and outbound request (to see how the loose_route() is done) Regards, Bogdan Jeff Kronlage wrote: The RURI. Thanks, Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 9:13 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] NAT fixup question Jeff, the VIA hdr does not require mangling - the addition of the received param is enough to handle nat issues. So the VIA you posted is correct form NAT traversal point of view. Regarding the user part of the URI - what URI you are talking about? RURI ? TO / FROM uri? Contact URI ? Regards, Bogdan Jeff Kronlage wrote: Thanks Bogdan, An unrelated question: Does anything special need to be done with via statements when implementing NAT transversal? Fix_nated_contact() takes care of the contact field for me, but I still end up with: Via: SIP/2.0/UDP 192.168.1.105:5060;rport=42080;received=64.YYY.XX.XX;branch=z9hG4bK-e4e5 cd84 I'm having some random problems with the user part of the URI randomly vanishing after I call loose_route() when NAT is involved, and I'm thinking these are related. Thanks, -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com / http://www.data102.com -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 4:07 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Additional info on potential registration issue so DB ONLY mode..simply ignore the warning (see its meaning in my previous post) . The contacts will still be shared, but the socket information discarded. Regards, Bogdan Jeff Kronlage wrote: Usrloc mode is 3. -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com / http://www.data102.com -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Bogdan-Andrei Iancu Sent: Monday, October 19, 2009 11:32 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Additional info on potential registration issue So, this is the problem
[OpenSIPS-Users] Registration problem?
Hello all, I'm having a random registration problem I haven't had a chance to fight yet. Right now, 100% of my users have their SIP gateways on static, public IP addresses. We use static entries in the location table to route calls to these locations presently. We're wanting to deploy Linksys ATAs to smaller locations, these units would be behind NAT with dynamic addresses. I have MediaProxy all setup and happy. Outbound calls work great. However, I'm a little confused about how dynamic registrations work in OpenSIPS. My Linksys devices re-register every 5 minutes or so. When this happens, I end up with multiple entries in the subscriber table. I'd really only like to keep the most up-to-date registration. Any thoughts? My second and much larger problem is that I'm using multiple servers, with db_mode set to 3 on the usrloc module (performance is not a concern at the moment), and my servers randomly can't seem to locate the most up-to-date registration. It feels almost as if the server that received the registration knows about it (it's in the DB table immediately, as well) but the other boxes don't pick up on this registration for a while. Shouldn't a value of 3 mean always check the database? It doesn't seem to work as expected. Of note, stopping/starting opensips makes the new registration available immediately. Any advice that would put me in the right direction would be appreciated. Thanks, Jeff ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Additional info on potential registration issue
I'm getting this over and over in my syslog: WARNING:usrloc:get_all_db_ucontacts: non-local socket udp:HI.DDE.N.12:5060...ignoring Thanks, Jeff ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Registration problem?
Yes, location table, sorry. I appear to have solved my problem, albeit entirely from guessing. I had usrloc's matching_mode set to 1. I'm not 100% confident I understand the difference between using the call ID to match on registration, but I do know I went from perhaps a 50% chance to receive a call every few minutes to not having a single failure the rest of the day. I'd love to know what I fixed. Advice? Jeff -Original Message- From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Saúl Ibarra Sent: Thursday, October 15, 2009 6:37 PM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Registration problem? My Linksys devices re-register every 5 minutes or so. When this happens, I end up with multiple entries in the subscriber table. I'd really only like to keep the most up-to-date registration. Any thoughts? Subscriber? Do you mean the location table? You should only have one location if you sent a re-REGISTER,, right after the original register expired... so do you have any SIP trace on that? Regards, -- /Saúl http://www.saghul.net | http://www.sipdoc.net ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Statefull Load balancing
We do this with relative success using DNS load balancing. Our two boxes are randomly load balanced, not precisely half half. We then use a script that fires off test SIP messages at the boxes every 60 seconds, and run a second script that removes the entry from our DNS server should one of the boxes not respond (likewise, the script re-inserts them when they start responding again.) It's not totally optimal, but it works for us. Frankly the biggest problem was sharing variables across the boxes; we ended up with the need to track concurrent number of calls on various domains, and because those calls could originate/terminate via either box, we ended up using a complicated database script inside Opensips to manage cumulative variables. Cheers, Jeff From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Josip Djuricic Sent: Tuesday, October 13, 2009 8:46 AM To: users@lists.opensips.org Subject: [OpenSIPS-Users] Statefull Load balancing Importance: High Hi there, Could anyone point me on how to do load balancing with opensips with transaction sharing between 2 of these servers. I know there was few threads about this and they usually end with UCARP or heartbeat, but I would want to load balance between 2 opensips server with them sharing transactions between themselves if that is possible? Best regards, Josip ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Re-invite problem - 491 Request Pending
Bogdan, I apologize for 'beating a dead horse'. I get that this is a frustration we're stuck with for various reasons. I've been writing my Opensips config on a daily basis for going on six months now, and there's still a couple of weird spots in my scripts that drive me nuts (I literally have a comment above this code that says NEEDS DEBUGGING). For anyone interested in the topic, please understand that I wrote this particular fix 'under the gun', we'd just launched our product and a handful of our customers couldn't receive calls from a network we're peered with because their proxy server fired off an immediate reinvite and my system couldn't accept it. This went so far as the peered telco beginning to call me (unsuccessfully, of course! J) because they were getting tickets from their users unable to contact mine. Having said that, I was in a hurry, and came up with the code below. I still to this day don't understand why calling t_check_trans() twice was necessary, but I can say that if I eliminate one of them, the system breaks down. Any advice? Like any good IT/Developer type, I'd like to totally understand what my script is doing J Cheers, Jeff Kronlage Data102 From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Brett Nemeroff Sent: Tuesday, October 06, 2009 7:15 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Re-invite problem - 491 Request Pending Bogdan, I presently record the 200 OK ACK in my ACC, but I don't seem to actually utilize it for anything at present. If I did the fix jeff mentioned, will I no longer get that ACK in ACC? so performing the t_check_trans() is faster than tm module's built in matching? I'm not sure I get why this is faster. I would have thought that the work t_check_trans does is similar to what the tm module already does. BTW ,is this a bug that is planned to be fixed? Or should I just expect that this scripting fix be a regular part of my scripts (if so, perhaps it should be in the example scripts?) Thanks, Brett On Tue, Oct 6, 2009 at 8:01 AM, Bogdan-Andrei Iancu bog...@voice-system.ro wrote: Hi Brett, This is an ancient topic that needs to be solved once for all. The bottom problem is that OpenSIPS / TM does try o match the 200OK ACK against the INVITE transaction - and it should not do that as 200OK ACK forms a separate transaction and it matches at dialog level, not transaction level. Because of this, the 200OK ACK matching is not reliable (especially if you do spirals on opensips) and it is also time consuming. Because of this, the 200OK ACK matching takes longer than processing of a re-INVITE and here comes the changing in order. IMO, this artificial / forced matching of 200 OK should be dropped. But there are 2 modules using this: ACC - for accounting ACK for 200 OK - not sure how many people do enable this OSP - no clue :D. Regards, Bogdan Brett Nemeroff wrote: Jeff, Thanks for your reply. Is this in the loose route? or.. ? Does it break anything else? Bogdan, anyway you can explain what's going on here? :) -Brett On Mon, Oct 5, 2009 at 12:30 PM, Jeff Kronlage j...@data102.com mailto:j...@data102.com wrote: Brett, I had this same exact problem. The solution was a little clunky but sending the ACK out statelessly solves the problem. My code looks like: t_check_trans(); if (is_method(ACK) !t_check_trans()) { if (!forward()) sl_reply_error(); exit; } if (!t_relay()) sl_reply_error(); I wish I could give a more techie explanation on why this works - it was a hackjob answer for me. Bogdan posted an answer perhaps a week ago that explained it a bit. Cheers, -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com mailto:j...@data102.com / http://www.data102.com *From:* users-boun...@lists.opensips.org mailto:users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org mailto:users-boun...@lists.opensips.org] *On Behalf Of *Brett Nemeroff *Sent:* Monday, October 05, 2009 9:51 AM *To:* users@lists.opensips.org mailto:users@lists.opensips.org *Subject:* [OpenSIPS-Users] Re-invite problem - 491 Request Pending Hello All, I'm not sure where the problem is.. it's either my switch, or it's the customer's box. What's happening is the customer sends a call. As soon as the 200OK gets back to them, they re-invite.. very fast. The reinvite occurs BEFORE the ACK for the 200OK makes it back to the provider. Because of this, when the RE-INVITE hits the provider they respond with 491 Request Pending, in other words, I can't process a re-invite because the last INVITE hasn't send me an ACK back yet
[OpenSIPS-Users] Has anyone implemented account codes?
We'd like to implement the ability to organize CDRs by account code, and/or to restrict calling to certain areas based on code. Rather than delve into this in detail, I am linking Verizon's explanation of the service: http://www22.verizon.com/longdistance/pdf/plan_acctcodes_east.pdf Any input would be much appreciated. Jeff Kronlage Data102 ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Re-invite problem - 491 Request Pending
Brett, I had this same exact problem. The solution was a little clunky but sending the ACK out statelessly solves the problem. My code looks like: t_check_trans(); if (is_method(ACK) !t_check_trans()) { if (!forward()) sl_reply_error(); exit; } if (!t_relay()) sl_reply_error(); I wish I could give a more techie explanation on why this works - it was a hackjob answer for me. Bogdan posted an answer perhaps a week ago that explained it a bit. Cheers, -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com / http://www.data102.com http://www.data102.com From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Brett Nemeroff Sent: Monday, October 05, 2009 9:51 AM To: users@lists.opensips.org Subject: [OpenSIPS-Users] Re-invite problem - 491 Request Pending Hello All, I'm not sure where the problem is.. it's either my switch, or it's the customer's box. What's happening is the customer sends a call. As soon as the 200OK gets back to them, they re-invite.. very fast. The reinvite occurs BEFORE the ACK for the 200OK makes it back to the provider. Because of this, when the RE-INVITE hits the provider they respond with 491 Request Pending, in other words, I can't process a re-invite because the last INVITE hasn't send me an ACK back yet. This happens over.. and over.. and over. What I'm wondering is if there is a timer I can adjust for this. Seems like OpenSIPs should know that the transaction is in a state where there is a PENDING ACK and it shouldn't process the RE-INVITE quite yet (Request Queued?). Perhaps that isn't a normal function of a Proxy. So I guess I'm looking for either a timer adjustment or a way to insert some sorta delay (sounds like a bad idea) to allow the ACK to traverse. The numbers are VERY close.. the ACK actually arrives at timestamp 12.757073, but the INVITE goes to the provider at 12.755913. So in other words, if the RE-INVITE occured 0.001161 seconds later, this wouldn't happen. Seems like there should be something to prevent these events? (A properly working UAC perhaps?!) Any ideas? Thanks, Brett ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Re-invite problem - 491 Request Pending
On that note, Bogdan's reply was on the sourceforge forum's : there is known issue that ACK processing is a bit slower than the re-INVITE processing and they may swap order on opensips what you did was to bypass TM in opensips and forward statelessly the ACK (this is ACK is now much faster) and there is no swapping. -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com / http://www.data102.com From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Brett Nemeroff Sent: Monday, October 05, 2009 11:56 AM To: OpenSIPS users mailling list Subject: Re: [OpenSIPS-Users] Re-invite problem - 491 Request Pending Jeff, Thanks for your reply. Is this in the loose route? or.. ? Does it break anything else? Bogdan, anyway you can explain what's going on here? :) -Brett On Mon, Oct 5, 2009 at 12:30 PM, Jeff Kronlage j...@data102.com wrote: Brett, I had this same exact problem. The solution was a little clunky but sending the ACK out statelessly solves the problem. My code looks like: t_check_trans(); if (is_method(ACK) !t_check_trans()) { if (!forward()) sl_reply_error(); exit; } if (!t_relay()) sl_reply_error(); I wish I could give a more techie explanation on why this works - it was a hackjob answer for me. Bogdan posted an answer perhaps a week ago that explained it a bit. Cheers, -- Jeff Kronlage Senior IT Engineer, Data102 102 South Tejon, Suite #1250 Colorado Springs, CO 80903 (719) 387- x 1335 direct (719) 578-8844 fax j...@data102.com / http://www.data102.com From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Brett Nemeroff Sent: Monday, October 05, 2009 9:51 AM To: users@lists.opensips.org Subject: [OpenSIPS-Users] Re-invite problem - 491 Request Pending Hello All, I'm not sure where the problem is.. it's either my switch, or it's the customer's box. What's happening is the customer sends a call. As soon as the 200OK gets back to them, they re-invite.. very fast. The reinvite occurs BEFORE the ACK for the 200OK makes it back to the provider. Because of this, when the RE-INVITE hits the provider they respond with 491 Request Pending, in other words, I can't process a re-invite because the last INVITE hasn't send me an ACK back yet. This happens over.. and over.. and over. What I'm wondering is if there is a timer I can adjust for this. Seems like OpenSIPs should know that the transaction is in a state where there is a PENDING ACK and it shouldn't process the RE-INVITE quite yet (Request Queued?). Perhaps that isn't a normal function of a Proxy. So I guess I'm looking for either a timer adjustment or a way to insert some sorta delay (sounds like a bad idea) to allow the ACK to traverse. The numbers are VERY close.. the ACK actually arrives at timestamp 12.757073, but the INVITE goes to the provider at 12.755913. So in other words, if the RE-INVITE occured 0.001161 seconds later, this wouldn't happen. Seems like there should be something to prevent these events? (A properly working UAC perhaps?!) Any ideas? Thanks, Brett ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Global Variables
Brett, The $var variables are persistent per transaction. For the entire dialog, use dialog variables: http://www.opensips.org/html/docs/modules/1.5.x/dialog.html The key functions here are store_dlg_value() and fetch_dlg_value(), or set_dlg_flag() and is_dlg_flag_set(). Now if you're looking to share values between different dialogs, you could have a look at set_dlg_profile() and get_profile_size(), but I'm not sure that's what you're looking for. There is some great sample code here: http://www.opensips.org/Resources/DocsTutConcurrentCalls I had the need to store values across multiple profiles and across multiple servers in real-time; my solution was to use avp_db_query() and build my own database-backended storage system that all Opensips processes, regardless of which server they were on, could access. Needless to say this is not a lightweight solution and I'm certain it will require a beefy database server as we get larger, but it was the only way I could see to make it happen... Jeff From: users-boun...@lists.opensips.org [mailto:users-boun...@lists.opensips.org] On Behalf Of Brett Nemeroff Sent: Sunday, October 04, 2009 10:27 AM To: users@lists.opensips.org Subject: [OpenSIPS-Users] Global Variables Hey all, I'm wondering if there is a way to use global variables? I see that $var variables are persistent across the process, but I need something that will persist across all processes. Right now, I'm using memcache, but I'm not sure if I'll have race conditions relying on that as I expect many processes to be accessing and updating the globals for every call. Thanks, Brett ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users