Hi,
I tried many things but none seems to work. I am using ser 0.8.4. With the following code in ser.cfg, every time a REGISTER arrives with the 33XXXXXX format, the request is logged in my duplicates log, but the subst line does not seem to work. I tried replace and replace_all also, but no luck. I though that maybe the exported shell variables I am dumping in my log file are not updated after the subst, but a serctl ul show clearly display only the 33XXXXXX numbers in the location database.
Here is the code I am using :
if (method=="REGISTER") {
save("location"); exec_msg("echo -e REGISTER `date` '\n' `printenv | grep SIP` '\n' >> /var/log/ser-register.log");
if (search("^From.*sip:33.*")) { subst('/sip:33/sip:0/g'); save_noreply("location"); exec_msg("echo -e REGISTER DUP `date` '\n' `printenv | grep SIP` '\n' >> /var/log/ser-register-dup.log"); break; }
break; };
Any idea ?
Alan Litster wrote:
Hi,
Thanks for your reply.
Alan Litster wrote:
Doing it the way you've suggested would mean modifying the From and To
Indeed. I already tried that, using the replace() / replace_all() textops functions, but I could not even manage to have the header modified. It just did nothing at all ....
I've had the situation where I've needed to update the Refer-To: header as the gateway was unable to handle it in a satisfactory manor. For this I used the subst function in the textops module, I'm not sure if this functions any differently to the replace functions.
Besides, in the recent thread Re: [Serusers] HF replace, someone said that modifying From: and To "is not allowed".
It's recomended not too, though most people want to modify the From on INVITE's. It may not be such a problem on a REGISTER method, just do a save_noreply("location")
But I am wondering ... ain't it the "Contact:" header which is used by register.so/usrloc.so ?
It's Contact header is used as the location of the UAC, 'username@ipaddress_of_uac'. The From/To fields are used as the username part on the sip registrar, generally the From/To are the same though may not always be the case. See http://www.faqs.org/rfcs/rfc3261.html section 10.2
fields, then doing a save. This should in theory all the UAC to
register on
the two addresses, it could get a little messy.
I agree. I anticipate a few issues on that side.
An alternative would be to create an alias, this would be fine
if you knew
before hand what format they would register with.
Well, I know which server will send what format, and I can afford to hardcode the IPs in the ser.cfg. But after reading the section about aliases in the ser Admin's manual, I must confess it is not clear for me. Could you elaborate on that idea ?
In your example you want lookup("33122334455") to return the same as lookup("0122334455"). Well if 33122334455 is an alias for 0122334455 it will. First it does an alias lookup of 33122334455@mydomain.com which replaces the r-uri with 0122334455@mydomain.com then it does a lookup on that, finds a match and does a further replace with 0122334455@1.2.3.4 (The IP address of the UAC from the Contact record)
-----Original Message----- From: serusers-bounces@iptel.org [mailto:serusers-bounces@lists.iptel.org]On Behalf Of Jerome Martin Sent: 04 May 2005 15:16 To: serusers@lists.iptel.org Subject: [Serusers] I need to alter and duplicate REGISTER saves
Hello everyone,
After looking everywhere in the docs and ML archives, I couldn't find a way to solve my problem, so I would appreciate any help.
We have several iPBX servers sending REGISTERs to a SER registrar. Some of those servers send us the numbers to register as aor in the form 0XXXXXXXXX (local numbering plan), some other in the form 33XXXXXXXXX (local country code prefix). For various reasons, we need to handle those different REGISTERs simultaneously, and be able to lookup both formats in the location database.
What I'm looking for is a way to "duplicate" the REGISTER entries, i.e. when ser receives a REGISTER for 33XXXXXXXXX, I'd like it to save() the 33XXXXXXXXX, but also create an entry for the corresponding 0XXXXXXXXX.
Example : SER receives a REGISTER request for 33122334455. I'd like to have two aors in the location database, so that lookup("33122334455") and lookup("0123344556") would both return the same thing.
What I have in mind is something like this :
if (method=="REGISTER") { # Always save the original aor save("location");
# If the number starts with 33, also save a duplicate aor in the 0XXXXXXXXX format if (search("^From.*sip:33.*")) {
# Insert some code to alter the received SIP message and
change the
# number in order to save the 0XXXXXXXXX aor # ... # ... # ... save("location"); break;
} break; };
Can anyone help ?
Best Regards, Jerome Martin
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
This email, and any files transmitted with it, is copyright and
may contain confidential information.
The contents are intended for the use of the addressee(s) only. Unauthorized use may be unlawful. If you receive this email by mistake, please advise sender immediately. The views of the author may not necessarily constitute the views
of the company.
Nothing in this mail shall bind the company in any contract or
obligation.
Tel +44 (0) 20 8002 6000 Fax +44 (0) 20 8002 6060
This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________
This email, and any files transmitted with it, is copyright and may contain confidential information. The contents are intended for the use of the addressee(s) only. Unauthorized use may be unlawful. If you receive this email by mistake, please advise sender immediately. The views of the author may not necessarily constitute the views of the company. Nothing in this mail shall bind the company in any contract or obligation.
Tel +44 (0) 20 8002 6000 Fax +44 (0) 20 8002 6060
This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________