diff --git a/src/frame/frame_asterisk.c b/src/frame/frame_asterisk.c index 4c91a0b..8e6666f 100644 --- a/src/frame/frame_asterisk.c +++ b/src/frame/frame_asterisk.c @@ -388,13 +388,14 @@ struct s_peer { } -void set_peer_update(){ +void set_peer_update( int trunk ){ struct s_peer *peer = _peer; while(peer){ - peer->action_update = 0; - + if(peer->trunk == trunk){ + peer->action_update = 0; + } peer = peer->next; } } diff --git a/src/frame/frame_asterisk.h b/src/frame/frame_asterisk.h index 2389ade..f22e9c4 100644 --- a/src/frame/frame_asterisk.h +++ b/src/frame/frame_asterisk.h @@ -198,7 +198,7 @@ int remove_peer_name( const char *peer ); struct s_peer *get_peer_number(const char *number); struct s_peer *get_peer(const char *number); int free_peer(struct s_peer *peer); -void set_peer_update(); +void set_peer_update( int trunk ); void peer_update( int trunk ); diff --git a/src/peer/peer.c b/src/peer/peer.c index b23a2ff..1953cd6 100644 --- a/src/peer/peer.c +++ b/src/peer/peer.c @@ -230,7 +230,13 @@ int parse_event_peerentry( EVENT *event, s_manager *smanager ){ if(!objectname) goto fail; ipaddress = ami_get_value(smanager->ami, event->args, "IPaddress"); - if(!atoi(ipaddress)) { + if(!strncmp(ipaddress, "-none-", 6)){ + ipaddress = NULL; + } + else if (strncmp(ipaddress, "(null)", 6)){ + ipaddress = NULL; + } + else if(!atoi(ipaddress)) { ipaddress = NULL; } @@ -253,8 +259,7 @@ int parse_event_peerentry( EVENT *event, s_manager *smanager ){ table_peer = get_peerentry_db( Select_peerentry, objectname ); if(table_peer){ - peer_trunk = table_peer->trunk; - if( (table_peer->trunk != peer_trunk) || + if(peer_trunk != table_peer->trunk || (strcmp_n(table_peer->protocol, channeltype) != 0) || (strcmp_n(table_peer->address, ipaddress) != 0) ) { diff --git a/systemd/amid.service b/systemd/amid.service index 84d1400..43218f1 100644 --- a/systemd/amid.service +++ b/systemd/amid.service @@ -8,7 +8,7 @@ Restart=always RestartSec=2 ExecStart=/usr/sbin/amid NotifyAccess=main -TimeoutStartSec=25 +TimeoutStartSec=20 [Install] WantedBy=multi-user.target