Further update, it looks like append_branch is over-writing the original
request-uri, an ngrep shows the following for the 2 messages sent:
This one looks like the proper replicate for the original request
U 2014/07/21 14:56:29.781372 BACKUP_REGISTRAR_1:5060 ->
BACKUP_REGISTRAR_3:5060
REGISTER sip:*domain.com*;transport=UDP SIP/2.0
This one looks like the r-uri is re-written to that of the
BACKUP_REGISTRAR_2 address, but destination is still BACKUP_REGISTRAR_3
U 2014/07/21 14:56:33.781441 BACKUP_REGISTRAR_1:5060 ->
BACKUP_REGISTRAR_3:5060
REGISTER sip:*BACKUP_REGISTRAR_2*:5060 SIP/2.0
Is this normal operation or am I missing something fundamental here with
t_replicate/append_branch?
Thanks
Bruce
On 21/07/2014 14:24, Bruce McAlister wrote:
Just an update on this, it appears to send 2 REGISTER
requests in
parellel to BACKUP_REGISTRAR_3, so it looks like the append_branch is
being added but its uri is set to BACKUP_REGISTRAR_3 (and not
BACKUP_REGISTRAR_2 as requested int the append_branch section)
On 21/07/2014 13:49, Asgaroth wrote:
Hi All,
I have an issue that I cant seem to get to the bottom of, I would
appreciate if someone could point me in the right direction.
I have 3 registrar's and would like to replicate the registration
regest from 1 to the other 2, I am trying this with t_replicate, the
docs say that to send to multiple destinations an append_branch
should be performed prior to the t_replicate, which is what I am
trying to do.
What appears to happen is that the replication only sends the
REGISTER to the server defined in the t_replicate command, it doesnt
appear to be sending it to the destination defined in append_branch.
Kamailio Version:
version: kamailio 4.1.4 (x86_64/linux) 84c1ff
flags: STATS: Off, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS,
DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC,
DBG_QM_MALLOC, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE,
USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 4MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 84c1ff
compiled on 14:36:04 Jul 20 2014 with gcc 4.4.7
Here is what I have tried so far (on registrar 1):
#!define BACKUP_REGISTRAR_1 '1.1.1.1'
#!define BACKUP_REGISTRAR_2 '1.1.1.2'
#!define BACKUP_REGISTRAR_3 '1.1.1.3'
save("location");
if ( src_ip != BACKUP_REGISTRAR_2 && src_ip != BACKUP_REGISTRAR_3 ) {
append_branch("sip:" + BACKUP_REGISTRAR_2 + ":5060");
t_replicate("sip:" + BACKUP_REGISTRAR_3 + ":5060");
};
With the above in place, I only see the system attempting to
replicate to BACKUP_REGISTRAR_3, I dont see any request to
BACKUP_REGISTRAR_2.
Am I doing something wrong here?
Thanks
Bruce