Summary:ASTERISK-03843: [patch] Improve REGISTER
Reporter:cybershield (cybershield)Labels:
Date Opened:2005-04-02 01:34:16.000-0600Date Closed:2011-06-07 14:05:11
Versions:Frequency of
Environment:Attachments:( 0) chan_sip.c.diff
( 1) chan_sip.v2.diff
( 2) chan_sip.c.v3.diff
Description:Every time that executes a RELOAD or SIP RELOAD, asterisk send to Sip Proxy all registered user agent. With a number considerable of fields REGISTER in SIP.CONF, there is a peak on the internet bandwhich and cpu load had to the great number of recording that must be forwarded. With this patch , asterisk registry the user agents added or modified in sip.conf.
Comments:By: Kevin P. Fleming (kpfleming) 2005-04-02 17:28:04.000-0600

Do you have a disclaimer on file? If not, we cannot accept this patch.

By: Kevin P. Fleming (kpfleming) 2005-04-02 17:55:19.000-0600

This is a good first step, but there is a better way to implement it.

Instead of building all new sip_registry objects and then comparing them to the existing ones, you can use the same technique that build_peer uses; mark all the existing objects, then when sip_register is called, try to find an existing sip_registry that matches what is being requested in the 'register =>' line. If you find one, and it matches the same values, then just unmark it and move on. If you find one and it does not match the same values, you could update it, or just leave it and create a new one and allow the old one to be deleted when the PURGE_MARKED operation is called on the regl list.

By: cybershield (cybershield) 2005-04-03 04:33:32

This file is disclaimed.

By: Kevin P. Fleming (kpfleming) 2005-04-03 15:54:32

Does that mean that you have actually submitted a disclaimer to Digium? Unfortunately we cannot accept single-file disclaiming, one of the two provided forms must be filled out and FAXed to Digium. The forms are located here:


Please include your Mantis username and email address on the disclaimer form.

By: cybershield (cybershield) 2005-04-04 05:04:00

can i send an email with in attached a pdf of the document ?

By: Kevin P. Fleming (kpfleming) 2005-04-04 11:28:34

That can be done, but it is very preferable for us to receive the document via mail or FAX. If faxing the document is a cost issue for you, let us know and we'll try to get that taken care of :-)

By: cybershield (cybershield) 2005-04-06 11:39:35

I have send the pdf disclaimer document to bugs@digium.com

By: Kevin P. Fleming (kpfleming) 2005-04-06 11:48:08

The disclaimer was received and has been accepted. Thanks!

Now we just need to finalize the technical issues with your patch; I would very much like to see an implementation like I described above.

By: cybershield (cybershield) 2005-04-08 12:12:46

I have added new version (chan_sip.v2.diff) without temporary registration list.
Check if it is all ok and if you like this version.

By: Mark Spencer (markster) 2005-04-10 22:44:33

Looks fine to me...  Kevin, take a peek and free to commit if you don't spot anything wrong :)

By: cybershield (cybershield) 2005-04-24 03:21:25

Any progress on this patch ?

By: Olle Johansson (oej) 2005-06-04 07:19:24

Ok, we need to update this patch to current CVS where we changed the registration procedure. Also, I would like a CLI command that restarts the registration process for failed attempts. That is propably up to me to code, but if you feel like doing it I would be very grateful!

By: Fabrizio Cuseo (fabry) 2005-06-13 10:10:03

Any new for this patch included in the current CVS ?

By: Michael Jerris (mikej) 2005-06-23 06:17:33

cybershield-  can you update this patch for cvs head and add what oej is asking for?

By: cybershield (cybershield) 2005-06-25 09:10:58

I have update my patch using last cvs head.
Added "sip reregistration" command for resend all known registration.

Ciao Massimo

By: Fabrizio Cuseo (fabry) 2005-06-27 10:40:29

Ciao Massimo.
I'm testing your patch; "sip reregister" starts a new register process for any sip peer, not only for unregistered and failed peers.
The optimal command will be:

- sip reregister [peer/all]

If you write only "sip reregister", only not registered peers will be processed
If you write a peer name, only that peer will be processed
If you write "all" (or if you prefer, you can use "sip reregister_all" as a command) all the peers will be processed.

Thanks again for your job.

By: Fabrizio Cuseo (fabry) 2005-06-27 10:41:29

Sorry... "sip reregistration"  not "sip reregister"

By: Olle Johansson (oej) 2005-07-18 10:18:26

fabry: This is about register=, not about peers at all.

Cybershield: I would like the CLI to be "SIP registry restart" - it's more logical. Sorry for not mentioning this earlier on. Otherwise, it seems like good code. Up to date with current cvs?

By: Fabrizio Cuseo (fabry) 2005-07-18 10:34:40

oej: sorry for the wrong term. In my previous note, replace "peer" with "register entry"; it would be nice if the command can be:

sip registry restart [username[@domain]]

So if I have a lot of registers, I can restart the registry process only for one of them.

(also a "sip show peers [like username[@domain]] [unregistered]|[registered] command will be nice).
Regards, Fabrizio

By: Fabrizio Cuseo (fabry) 2005-07-18 10:35:35

ARGH !!! I urgently need an holiday ;)
Not "sip show peers" but "sip show registry...."

By: Olle Johansson (oej) 2005-07-20 13:52:37

fabry: Let's save the per user/domain part to later and make sure that we get this patch into cvs.
Cybershield: Do you have time to update the patch?

By: cybershield (cybershield) 2005-07-20 14:41:51

sorry oej, but i need more time for update this patch

By: Michael Jerris (mikej) 2005-07-31 22:48:27

Bug suspended due to no response.  Please re-open this bug when updates are ready.  Thanks.

By: Olle Johansson (oej) 2005-08-01 01:46:29

Ok, since cybershield doesn't have time I'm going to try to fix this if cybershield does not mind...

By: Michael Jerris (mikej) 2005-08-24 02:16:04

bug once again suspended due to no response.  Feel free to re-open when updated code is ready.