Astrad Version 8

Oussama Hammami, 2011-07-24

Switzernet

 

Cette version d’Astrad nécessite la version 4 du serveur DBA.

Modification et nouvelle fonctionnalité

Changement de la structure de la table location3

mysql> desc location3;

+----------+----------------------+------+-----+-------------------+-----------------------------+

| Field    | Type                 | Null | Key | Default           | Extra                       |

+----------+----------------------+------+-----+-------------------+-----------------------------+

| username | varchar(80)          | NO   | PRI |                   |                             |

| ipaddr   | varchar(15)          | NO   | PRI |                   |                             |

| port     | smallint(5) unsigned | NO   | PRI | 0                 |                             |

| expires  | datetime             | YES  |     | NULL              |                             |

| register | timestamp            | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

+----------+----------------------+------+-----+-------------------+-----------------------------+

5 rows in set (0.00 sec)

 

mysql> select * from location3;

+-------------+--------------+-------+---------------------+---------------------+

| username    | ipaddr       | port  | expires             | register            |

+-------------+--------------+-------+---------------------+---------------------+

| 41215500327 | 81.62.23.131 | 50874 | 2011-07-25 10:45:53 | 2011-07-25 10:43:23 |

| 41215500327 | 81.62.23.131 | 50877 | 2011-07-25 10:46:31 | 2011-07-25 10:44:01 |

+-------------+--------------+-------+---------------------+---------------------+

2 rows in set (0.00 sec)

 

La table location3 contient la liste des téléphones SIP enregistré à la date register dont l’adresse IP est ipaddr et le port est port et dont l’enregistrement s’expire à la date expires.

Ces données seront utilisées pour router les appels entrants vers les téléphones dont le username correspond au numéro du client à joindre.

La clé de cette table est une clé composée (username + ipaddr + port) donc un client peut avoir plusieurs enregistrements au même temp.

Appels entrants simultanés

Notre serveur Asterisk utilise le module Real-Time (MySQL), Il remonte l’enregistrement vers son DBA. SI le client possède plus un enregistrement valide dans la table location2 le serveur DBA l’ajoute dans la table multiple_ua qui sera par la suite répliqué vers tous les Astrads.

 

La table location2 (dans le serveur DBA) contiendra tous les enregistrements de tous les Astrad (non uniquement ces Astrad) grâce à la synchronisation assurée par le script exec-regitration.pl, ce qui implique que tous les clients qui utilisent plus un téléphone SIP sont dans la table multiple_ua.

 

Lors d’un appel entrant l’Asterisk demande le routage en appelant la procédure set_route() et la fonction get_route(). Ces derniers sont détaillés dans ce document http://switzernet.com/3/public/110724-astrad-simultaneous-call/ et http://switzernet.com/3/public/110630-test-dial-for-incomming-call/

Garder le port dans le router NAT ouvert (port mapping)

Lors de l’enregistrement du téléphone SIP (REGISTER), l’Astrad garde l’IP et le Port (URI) de ce dernier dans sa base de données (table MySQL sipppeer), l’information remonte jusqu’au serveur de routage et de ce cette manière tous les appels entrant vers ce client seront routés vers l’Asterisk en question. Ce dernier utilisera l’adresse IP et le port utilisés par le téléphone lors du dernier enregistrement pour router les appels entrants de ce client mais il arrive que le routeur NAT du client libère ce port et par conséquent la transformation inverse pour renvoyer les paquets SIP vers l’IP locale devient impossible.

 

Notre solution est d’envoyer des paquets SIP NOTIFY vers les clients avec un seul téléphone connecté en utilisant la commande ‘sip notify’ dont l’événement est ‘keep-alive’ depuis l’interface Manager d’Asterisk (module Perl Asterisk::Manager).

Pour plus de détails : http://switzernet.com/3/public/110627-astrad-nat-port-mapping/

 

Pour les clients qui utilisent plus d’un téléphone SIP, des paquets UDP vides seront envoyées afin de garder le port dans le routeur NAT ouvert, ce technique est utilisé par les serveur SIP de Porta-One ainsi que les téléphones Siemens.

Pour plus de détails : http://switzernet.com/3/public/110627-astrad-empty-udp-keepalive/

Exemple d’envoi des paquets UDP vides

mysql> select * from location3 where username=41215500327;

+-------------+--------------+-------+---------------------+---------------------+

| username    | ipaddr       | port  | expires             | register            |

+-------------+--------------+-------+---------------------+---------------------+

| 41215500327 | 81.62.23.131 | 50874 | 2011-07-25 11:14:05 | 2011-07-25 11:11:35 |

| 41215500327 | 81.62.23.131 | 50877 | 2011-07-25 11:15:57 | 2011-07-25 11:13:27 |

+-------------+--------------+-------+---------------------+---------------------+

2 rows in set (0.00 sec)

 

# ngrep -pqlt -W byline "" port 5060

interface: eth0 (91.121.151.0/255.255.255.0)

filter: (ip or ip6) and ( port 5060 )

 

U 2011/07/25 11:12:13.042066 91.121.151.58:5060 -> 81.62.23.131:50874

.

 

U 2011/07/25 11:12:13.043305 91.121.151.58:5060 -> 81.62.23.131:50877

.

 

 

U 2011/07/25 11:12:28.047659 91.121.151.58:5060 -> 81.62.23.131:50874

.

 

U 2011/07/25 11:12:28.048403 91.121.151.58:5060 -> 81.62.23.131:50877

Exemple d’envoi des paquets NOTIFY

mysql> select * from location3 where username=41215500327;

+-------------+--------------+-------+---------------------+---------------------+

| username    | ipaddr       | port  | expires             | register            |

+-------------+--------------+-------+---------------------+---------------------+

| 41215500327 | 81.62.23.131 | 50877 | 2011-07-25 11:15:57 | 2011-07-25 11:13:27 |

+-------------+--------------+-------+---------------------+---------------------+

1 row in set (0.00 sec)

 

# ngrep -pqlt -W byline "" port 5060

interface: eth0 (91.121.151.0/255.255.255.0)

filter: (ip or ip6) and ( port 5060 )

 

U 2011/07/25 11:18:45.432981 91.121.151.58:5060 -> 81.62.23.131:50877

NOTIFY sip:41215500327@81.62.23.131:50877 SIP/2.0.

Via: SIP/2.0/UDP 91.121.151.58:5060;branch=z9hG4bK2b13c3f0;rport.

From: "asterisk" <sip:asterisk@91.121.151.58>;tag=as0a95a8ce.

To: <sip:41215500327@81.62.23.131:50877>.

Contact: <sip:asterisk@91.121.151.58>.

Call-ID: 0ae67ebc40b63f2c1ca64d4245aae1c3@91.121.151.58.

CSeq: 102 NOTIFY.

User-Agent: Asterisk PBX.

Max-Forwards: 70.

Event: keep-alive.

Content-Length: 0.

.

 

 

U 2011/07/25 11:18:45.481026 81.62.23.131:50877 -> 91.121.151.58:5060

SIP/2.0 200 OK.

To: <sip:41215500327@81.62.23.131:50877>;tag=cb6ff3bc3a2173b0i0.

From: "asterisk" <sip:asterisk@91.121.151.58>;tag=as0a95a8ce.

Call-ID: 0ae67ebc40b63f2c1ca64d4245aae1c3@91.121.151.58.

CSeq: 102 NOTIFY.

Via: SIP/2.0/UDP 91.121.151.58:5060;branch=z9hG4bK2b13c3f0.

Server: Linksys/SPA921-5.1.8.

Content-Length: 0.

.

 

 

U 2011/07/25 11:19:15.438641 91.121.151.58:5060 -> 81.62.23.131:50877

NOTIFY sip:41215500327@81.62.23.131:50877 SIP/2.0.

Via: SIP/2.0/UDP 91.121.151.58:5060;branch=z9hG4bK4c1ee422;rport.

From: "asterisk" <sip:asterisk@91.121.151.58>;tag=as050e6915.

To: <sip:41215500327@81.62.23.131:50877>.

Contact: <sip:asterisk@91.121.151.58>.

Call-ID: 5f6e7a5a10b3419040309f6839550939@91.121.151.58.

CSeq: 102 NOTIFY.

User-Agent: Asterisk PBX.

Max-Forwards: 70.

Event: keep-alive.

Content-Length: 0.

.

 

 

U 2011/07/25 11:19:15.492145 81.62.23.131:50877 -> 91.121.151.58:5060

SIP/2.0 200 OK.

To: <sip:41215500327@81.62.23.131:50877>;tag=cb6ff3bc3a2173b0i0.

From: "asterisk" <sip:asterisk@91.121.151.58>;tag=as050e6915.

Call-ID: 5f6e7a5a10b3419040309f6839550939@91.121.151.58.

CSeq: 102 NOTIFY.

Via: SIP/2.0/UDP 91.121.151.58:5060;branch=z9hG4bK4c1ee422.

Server: Linksys/SPA921-5.1.8.

Content-Length: 0.

.

Astrad-tools

Astrad-tools est un script Perl qui regroupe tous les requêtes MySQL utilisées dans l’ensemble des scripts d’Astrad, il sera utilisé pour vérifier son fonctionnement.

# /etc/astrad/script/ast-tools.pl

Invalid action value.

Usage : ast-tools.pl -a <ACTION>

Action:

       sipconfig        Show configuration.

       location2        location in DBA server.

       location3        location in Astrad server.

       tonotify         Accounts to notify with sending SIP NOTIFY packets.

       toping           Accounts to ping with sending empty UDP packets.

       astmultiua       Accounts with multipleua on this Astrad.

       dbamultiua       Accounts with multipleua on all Astrad servers.

       account=%s       Show information of this account (account=ACCOUNT).

       checkpass=%s:%s  check password md5 (checkpass=ACCOUNT:PASSWORD).

Exemple

Liste des appareils enregistrés

# /etc/astrad/script/ast-tools.pl -a location3

SQL Query:

        SELECT * FROM location3;

Result   :

+-------------+---------------+-------+---------------------+---------------------+

| username    | ipaddr        | port  | expires             | register            |

+-------------+---------------+-------+---------------------+---------------------+

| 41215504126 | 212.147.8.105 |  1240 | 2011-07-25 14:32:54 | 2011-07-25 14:30:24 |

| 41215500329 | 212.147.8.105 | 62286 | 2011-07-25 14:33:17 | 2011-07-25 14:32:17 |

| 41215500327 | 85.3.99.208   | 57217 | 2011-07-25 14:33:10 | 2011-07-25 14:30:40 |

| 41215500329 | 85.3.99.208   | 57213 | 2011-07-25 14:33:05 | 2011-07-25 14:30:35 |

+-------------+---------------+-------+---------------------+---------------------+

 

Astrad envoi des paquets SIP NOTIFY à la liste suivante :

# /etc/astrad/script/ast-tools.pl -a tonotify

SQL Query:

        SELECT username FROM location3 WHERE username NOT IN (SELECT username FROM multiple_ua GROUP BY domain,username HAVING domain=(SELECT value FROM sipconfig WHERE name='ipaddr') AND COUNT(username)>1);

Result   :

+-------------+

| username    |

+-------------+

| 41215500327 |

| 41215504126 |

+-------------+

 

Astrad envoi des paquets UDP vides à la liste suivante :

# /etc/astrad/script/ast-tools.pl -a toping

SQL Query:

        SELECT username, ipaddr, port FROM multiple_ua WHERE domain=(SELECT value FROM sipconfig WHERE name='ipaddr') AND username NOT IN (SELECT username FROM multiple_ua WHERE domain=(SELECT value FROM sipconfig WHERE name='ipaddr') GROUP BY domain,username HAVING count(username)=1);

Result   :

+-------------+---------------+-------+

| username    | ipaddr        | port  |

+-------------+---------------+-------+

| 41215500329 | 212.147.8.105 | 62286 |

| 41215500329 | 85.3.99.208   | 57213 |

+-------------+---------------+-------+

Installation et mise à jour d’Astrad avec Puppet

Le Zip d’installation et la mise à jour puppet de la version 8 du serveur Astrad [http://switzernet.com/3/public/110126-astrad-versions/]

 

Changement de la hostname

# echo "astradX.switzernet.com" > /etc/hostname

# vi /etc/hosts

 < 91.121.XXX.XXX   astradX.switzernet.com

 

Activation de la nouvelle hostname

# /etc/init.d/hostname.sh

# hostname

 > astradX.switzernet.com

 

# sed -i -e '$d' /etc/motd;sed -i -e '/^hostname/d' /etc/motd; echo -e "hostname  : `hostname`\ncompany   : Switzernet@2011\n" >> /etc/motd

 

Installation d’Asterisk et puppet

# aptitude update

# aptitude install -y puppet asterisk

# /etc/init.d/puppet stop

 > Stopping puppet configuration management tool.

 

Configuration du puppet

# vi /etc/puppet/puppet.conf

 < pluginsync=false

 

Certification

# puppetd --server puppet.switzernet.com --waitforcert 60 --test

 > warning: peer certificate won't be verified in this SSL session

 > notice: Did not receive certificate

 > notice: Set to run 'one time'; exiting with no certificate

 

Dans puppet master (puppet.switzernet.com)

# puppetca --list

 > astradX.switzernet.com

# puppetca --sign astradX.switzernet.com

 

Dans le serveur Astrad

# puppetd --server puppet.switzernet.com --waitforcert 60 --test

# /etc/init.d/puppet start

Test et explication

Test 1 : Appel entrant depuis un autre réseau

Le compte 41215500329 possède deux téléphones SIP connectés :

Dans Astrad

mysql> select * from location3 where username=41215500329;

+-------------+---------------+-------+---------------------+---------------------+

| username    | ipaddr        | port  | expires             | register            |

+-------------+---------------+-------+---------------------+---------------------+

| 41215500329 | 212.147.8.105 | 51559 | 2011-07-25 12:07:47 | 2011-07-25 12:06:47 |

| 41215500329 | 85.3.99.208   | 57213 | 2011-07-25 12:08:43 | 2011-07-25 12:06:13 |

+-------------+---------------+-------+---------------------+---------------------+

2 rows in set (0.00 sec)

 

mysql> select * from sipconfig;

+----------+-----------------------+

| name     | value                 |

+----------+-----------------------+

| ipaddr   | 94.23.225.XX          |

| hostname | astrad.switzernet.com |

| dba      | 91.121.150.XX         |

| ua_id    | 7                     |

+----------+-----------------------+

4 rows in set (0.00 sec)

 

Dans son DBA 91.121.150.XX

mysql> select * from location2 where username=41215500329;

+-------------+---------------+---------------+---------------+-------+---------------------+---------------------+---------------------+

| username    | domain        | dba           | ipaddr        | port  | expires             | register            | reception           |

+-------------+---------------+---------------+---------------+-------+---------------------+---------------------+---------------------+

| 41215500329 | 94.23.225.XX  | 91.121.150.XX | 212.147.8.105 | 51559 | 2011-07-25 12:10:17 | 2011-07-25 12:09:17 | 2011-07-25 12:09:17 |

| 41215500329 | 94.23.225.XX  | 91.121.150.XX | 85.3.99.208   | 57213 | 2011-07-25 12:11:07 | 2011-07-25 12:08:37 | 2011-07-25 12:08:38 |

+-------------+---------------+---------------+---------------+-------+---------------------+---------------------+---------------------+

2 rows in set (0.00 sec)

 

mysql> select * from asterisk.multiple_ua where username=41215500329;

+-------------+---------------+---------------+-------+

| username    | domain        | ipaddr        | port  |

+-------------+---------------+---------------+-------+

| 41215500329 | 94.23.225.XX | 212.147.8.105 | 51559 |

| 41215500329 | 94.23.225.XX | 85.3.99.208   | 57213 |

+-------------+---------------+---------------+-------+

2 rows in set (0.00 sec)

 

Dans un autre DBA

mysql> select * from location2 where username=41215500329;

+-------------+---------------+---------------+---------------+-------+---------------------+---------------------+---------------------+

| username    | domain        | dba           | ipaddr        | port  | expires             | register            | reception           |

+-------------+---------------+---------------+---------------+-------+---------------------+---------------------+---------------------+

| 41215500329 | 94.23.225.XX  | 91.121.150.XX | 212.147.8.105 | 51559 | 2011-07-25 12:11:17 | 2011-07-25 12:04:20 | 2011-07-25 12:10:18 |

| 41215500329 | 94.23.225.XX  | 91.121.150.XX | 85.3.99.208   | 57213 | 2011-07-25 12:11:07 | 2011-07-25 11:23:40 | 2011-07-25 12:08:38 |

+-------------+---------------+---------------+---------------+-------+---------------------+---------------------+---------------------+

2 rows in set (0.00 sec)

 

mysql> select * from asterisk.multiple_ua where username=41215500329;

+-------------+---------------+---------------+-------+

| username    | domain        | ipaddr        | port  |

+-------------+---------------+---------------+-------+

| 41215500329 | 94.23.225.XX  | 212.147.8.105 | 51559 |

| 41215500329 | 94.23.225.XX  | 85.3.99.208   | 57213 |

+-------------+---------------+---------------+-------+

2 rows in set (0.00 sec)

 

Dans Astrad

mysql> select * from multiple_ua where username=41215500329;

+-------------+---------------+---------------+-------+

| username    | domain        | ipaddr        | port  |

+-------------+---------------+---------------+-------+

| 41215500329 | 94.23.225.212 | 212.147.8.105 | 51559 |

| 41215500329 | 94.23.225.212 | 85.3.99.208   | 57213 |

+-------------+---------------+---------------+-------+

2 rows in set (0.00 sec)

 

mysql> select * from sipconfig;

+----------+-----------------------+

| name     | value                 |

+----------+-----------------------+

| ipaddr   | 94.23.225.212         |

| hostname | astrad.switzernet.com |

| dba      | 91.121.150.96         |

| ua_id    | 7                     |

+----------+-----------------------+

4 rows in set (0.00 sec)

 

Un appel entrant vers ce compte depuis un autre réseau

ks306878:/etc/astrad/mysql# ngrep -pql -W byline "" port 1813

interface: eth0 (94.23.225.0/255.255.255.0)

filter: (ip or ip6) and ( port 1813 )

 

U 94.23.225.212:53089 -> 66.234.138.71:1813

.V.W.c>...ûhæ5¡X&òÖé(......"......h323-call-origin=originate........h323-call-type=VoIP........session-protocol=sipv2..^.áÔ..213.251.xx.xx..004121566xxxx...,.....&call-id=94.23.225.xx-1311589020.137.4......h323-setup-time=10:17:01 GMT Mon Jul 25 2011.8.....2h323-conf-id=70454C9C 8347A8CD FFDA0692 DC04A8DE."......h323-remote-address=sip-ua

 

Trace call porta-billing

 

Dans Astrad

mysql> select * from route_multiple_ua where username=41215500329;

+-------------+-----------------------------------------+

| username    | route                                   |

+-------------+-----------------------------------------+

| 41215500329 | SIP/41215500329@UA7&SIP/41215500329@UA8 |

+-------------+-----------------------------------------+

1 row in set (0.00 sec)

 

mysql> select * from sipconfig;

+----------+-----------------------+

| name     | value                 |

+----------+-----------------------+

| ipaddr   | 94.23.225.212         |

| hostname | astrad.switzernet.com |

| dba      | 91.121.150.96         |

| ua_id    | 9                     |

+----------+-----------------------+

4 rows in set (0.00 sec)

 

mysql> select * from sippeers2 where name in ('UA7','UA8');

+------+------+---------------+-----------+----------+---------------+-------+------------+----------+-----------+------+

| id   | name | host          | context   | insecure | ipaddr        | port  | regseconds | username | md5secret | nat  |

+------+------+---------------+-----------+----------+---------------+-------+------------+----------+-----------+------+

| 7476 | UA7  | 212.147.8.105 | forbidden | no       | 212.147.8.105 | 51559 |       NULL | NULL     | NULL      | yes  |

| 7477 | UA8  | 85.3.99.208   | forbidden | no       | 85.3.99.208   | 57213 |       NULL | NULL     | NULL      | yes  |

+------+------+---------------+-----------+----------+---------------+-------+------------+----------+-----------+------+

2 rows in set (0.00 sec)

Test 2: Appel interne (l’appelant et l’appelé est le même)

La procédure qu’on utilise pour router les appels entrants permet aussi de router les appels internes.

Reprenant  l’exemple ci-dessus, nous avons deux téléphones enregistrés avec le même compte SIP 41215500329.

mysql> select * from location3 where username=41215500329;

+-------------+---------------+-------+---------------------+---------------------+

| username    | ipaddr        | port  | expires             | register            |

+-------------+---------------+-------+---------------------+---------------------+

| 41215500329 | 212.147.8.105 | 51559 | 2011-07-25 12:32:47 | 2011-07-25 12:31:47 |

| 41215500329 | 85.3.99.208   | 57213 | 2011-07-25 12:32:46 | 2011-07-25 12:30:16 |

+-------------+---------------+-------+---------------------+---------------------+

2 rows in set (0.00 sec)

 

mysql> select * from sipconfig;

+----------+-----------------------+

| name     | value                 |

+----------+-----------------------+

| ipaddr   | 94.23.225.212         |

| hostname | astrad.switzernet.com |

| dba      | 91.121.150.96         |

| ua_id    | 9                     |

+----------+-----------------------+

4 rows in set (0.00 sec)

 

Résultat de ngrep d’un appel depuis 41215500329 vers 41215500329 (appel interne)

U 2011/07/25 12:33:42.406504 212.147.8.105:51559 -> 94.23.225.212:5060

INVITE sip:0215500329@astrad.switzernet.com SIP/2.0.

Via: SIP/2.0/UDP 192.168.1.118:51559;rport;branch=z9hG4bKapXgayat4rj7Q.

Max-Forwards: 70.

From: <sip:41215500329@astrad.switzernet.com>;tag=DDD7p85H4y4vB.

To: <sip:0215500329@astrad.switzernet.com>.

Call-ID: 9a78def0-314c-122f-7ab8-a04e04420000.

CSeq: 15458989 INVITE.

Contact: <sip:41215500329@212.147.8.105:51559;transport=udp>.

User-Agent: Telepathy-SofiaSIP/0.6.2 sofia-sip/1.12.10devel.

--

U 2011/07/25 12:33:42.406873 94.23.225.212:5060 -> 212.147.8.105:51559

SIP/2.0 407 Proxy Authentication Required.

Via: SIP/2.0/UDP 192.168.1.118:51559;branch=z9hG4bKapXgayat4rj7Q;received=212.147.8.105;rport=51559.

From: <sip:41215500329@astrad.switzernet.com>;tag=DDD7p85H4y4vB.

To: <sip:0215500329@astrad.switzernet.com>;tag=as74437d7d.

Call-ID: 9a78def0-314c-122f-7ab8-a04e04420000.

CSeq: 15458989 INVITE.

User-Agent: Asterisk PBX.

--

U 2011/07/25 12:33:42.455917 212.147.8.105:51559 -> 94.23.225.212:5060

ACK sip:0215500329@astrad.switzernet.com SIP/2.0.

Via: SIP/2.0/UDP 192.168.1.118:51559;rport;branch=z9hG4bKapXgayat4rj7Q.

Max-Forwards: 70.

From: <sip:41215500329@astrad.switzernet.com>;tag=DDD7p85H4y4vB.

To: <sip:0215500329@astrad.switzernet.com>;tag=as74437d7d.

Call-ID: 9a78def0-314c-122f-7ab8-a04e04420000.

--

U 2011/07/25 12:33:42.466239 212.147.8.105:51559 -> 94.23.225.212:5060

INVITE sip:0215500329@astrad.switzernet.com SIP/2.0.

Via: SIP/2.0/UDP 192.168.1.118:51559;rport;branch=z9hG4bKBZp9BSUX118SK.

Max-Forwards: 70.

From: <sip:41215500329@astrad.switzernet.com>;tag=DDD7p85H4y4vB.

To: <sip:0215500329@astrad.switzernet.com>.

Call-ID: 9a78def0-314c-122f-7ab8-a04e04420000.

CSeq: 15458990 INVITE.

Contact: <sip:41215500329@212.147.8.105:51559;transport=udp>.

User-Agent: Telepathy-SofiaSIP/0.6.2 sofia-sip/1.12.10devel.

Proxy-Authorization: Digest username="41215500329", realm="switzernet", nonce="24a724d3", algorithm=MD5, uri="sip:0215500329@astrad.switzernet.com",

--

U 2011/07/25 12:33:42.466586 94.23.225.212:5060 -> 212.147.8.105:51559

SIP/2.0 100 Trying.

Via: SIP/2.0/UDP 192.168.1.118:51559;branch=z9hG4bKBZp9BSUX118SK;received=212.147.8.105;rport=51559.

From: <sip:41215500329@astrad.switzernet.com>;tag=DDD7p85H4y4vB.

To: <sip:0215500329@astrad.switzernet.com>.

Call-ID: 9a78def0-314c-122f-7ab8-a04e04420000.

CSeq: 15458990 INVITE.

User-Agent: Asterisk PBX.

--

U 2011/07/25 12:33:42.933409 94.23.225.212:5060 -> 212.147.8.105:51559

INVITE sip:41215500329@212.147.8.105:51559 SIP/2.0.

Via: SIP/2.0/UDP 94.23.225.212:5060;branch=z9hG4bK471cdeb6;rport.

From: "41215500329" <sip:41215500329@94.23.225.212>;tag=as266e823d.

To: <sip:41215500329@212.147.8.105:51559>.

Contact: <sip:41215500329@94.23.225.212>.

Call-ID: 5dc72496794826b140a5e8ca4deb4c0d@94.23.225.212.

CSeq: 102 INVITE.

User-Agent: Asterisk PBX.

--

U 2011/07/25 12:33:42.933958 94.23.225.212:5060 -> 85.3.99.208:57213

INVITE sip:41215500329@85.3.99.208:57213 SIP/2.0.

Via: SIP/2.0/UDP 94.23.225.212:5060;branch=z9hG4bK20200191;rport.

From: "41215500329" <sip:41215500329@94.23.225.212>;tag=as1fa772f1.

To: <sip:41215500329@85.3.99.208:57213>.

Contact: <sip:41215500329@94.23.225.212>.

Call-ID: 66543d467b5f5e3b767b68f32656def2@94.23.225.212.

CSeq: 102 INVITE.

User-Agent: Asterisk PBX.

--

U 2011/07/25 12:33:43.068103 85.3.99.208:57213 -> 94.23.225.212:5060

SIP/2.0 100 Trying.

Via: SIP/2.0/UDP 94.23.225.212:5060;branch=z9hG4bK20200191;rport=5060.

From: "41215500329" <sip:41215500329@94.23.225.212>;tag=as1fa772f1.

To: <sip:41215500329@85.3.99.208:57213>;tag=2948097747.

Call-ID: 66543d467b5f5e3b767b68f32656def2@94.23.225.212.

CSeq: 102 INVITE.

Contact: <sip:41215500329@85.3.99.208:57213>.

User-Agent: C450 IP010720000000.

--

U 2011/07/25 12:33:43.139535 212.147.8.105:51559 -> 94.23.225.212:5060

SIP/2.0 100 Trying.

Via: SIP/2.0/UDP 94.23.225.212:5060;branch=z9hG4bK471cdeb6;rport=5060.

From: "41215500329" <sip:41215500329@94.23.225.212>;tag=as266e823d.

To: <sip:41215500329@212.147.8.105:51559>.

Call-ID: 5dc72496794826b140a5e8ca4deb4c0d@94.23.225.212.

CSeq: 102 INVITE.

User-Agent: Telepathy-SofiaSIP/0.6.2 sofia-sip/1.12.10devel.

--

U 2011/07/25 12:33:43.197021 212.147.8.105:51559 -> 94.23.225.212:5060

SIP/2.0 180 Ringing.

Via: SIP/2.0/UDP 94.23.225.212:5060;branch=z9hG4bK471cdeb6;rport=5060.

From: "41215500329" <sip:41215500329@94.23.225.212>;tag=as266e823d.

To: <sip:41215500329@212.147.8.105:51559>;tag=ep6Zr3pN17tFQ.

Call-ID: 5dc72496794826b140a5e8ca4deb4c0d@94.23.225.212.

CSeq: 102 INVITE.

Contact: <sip:41215500329@212.147.8.105:51559;transport=udp>.

User-Agent: Telepathy-SofiaSIP/0.6.2 sofia-sip/1.12.10devel.

--

U 2011/07/25 12:33:43.197147 94.23.225.212:5060 -> 212.147.8.105:51559

SIP/2.0 180 Ringing.

Via: SIP/2.0/UDP 192.168.1.118:51559;branch=z9hG4bKBZp9BSUX118SK;received=212.147.8.105;rport=51559.

From: <sip:41215500329@astrad.switzernet.com>;tag=DDD7p85H4y4vB.

To: <sip:0215500329@astrad.switzernet.com>;tag=as292c16fb.

Call-ID: 9a78def0-314c-122f-7ab8-a04e04420000.

CSeq: 15458990 INVITE.

User-Agent: Asterisk PBX.

--

U 2011/07/25 12:33:43.474003 212.147.8.105:51559 -> 94.23.225.212:5060

SIP/2.0 480 Terminated.

Via: SIP/2.0/UDP 94.23.225.212:5060;branch=z9hG4bK471cdeb6;rport=5060.

From: "41215500329" <sip:41215500329@94.23.225.212>;tag=as266e823d.

To: <sip:41215500329@212.147.8.105:51559>;tag=ep6Zr3pN17tFQ.

Call-ID: 5dc72496794826b140a5e8ca4deb4c0d@94.23.225.212.

CSeq: 102 INVITE.

User-Agent: Telepathy-SofiaSIP/0.6.2 sofia-sip/1.12.10devel.

--

U 2011/07/25 12:33:43.474072 94.23.225.212:5060 -> 212.147.8.105:51559

ACK sip:41215500329@212.147.8.105:51559 SIP/2.0.

Via: SIP/2.0/UDP 94.23.225.212:5060;branch=z9hG4bK471cdeb6;rport.

From: "41215500329" <sip:41215500329@94.23.225.212>;tag=as266e823d.

To: <sip:41215500329@212.147.8.105:51559>;tag=ep6Zr3pN17tFQ.

Contact: <sip:41215500329@94.23.225.212>.

Call-ID: 5dc72496794826b140a5e8ca4deb4c0d@94.23.225.212.

CSeq: 102 ACK.

User-Agent: Asterisk PBX.

--

U 2011/07/25 12:33:44.236403 85.3.99.208:57213 -> 94.23.225.212:5060

SIP/2.0 180 Ringing.

Via: SIP/2.0/UDP 94.23.225.212:5060;branch=z9hG4bK20200191;rport=5060.

From: "41215500329" <sip:41215500329@94.23.225.212>;tag=as1fa772f1.

To: <sip:41215500329@85.3.99.208:57213>;tag=2948097747.

Call-ID: 66543d467b5f5e3b767b68f32656def2@94.23.225.212.

CSeq: 102 INVITE.

Contact: <sip:41215500329@85.3.99.208:57213>.

--

U 2011/07/25 12:33:47.277981 85.3.99.208:57213 -> 94.23.225.212:5060

SIP/2.0 200 OK.

Via: SIP/2.0/UDP 94.23.225.212:5060;branch=z9hG4bK20200191;rport=5060.

From: "41215500329" <sip:41215500329@94.23.225.212>;tag=as1fa772f1.

To: <sip:41215500329@85.3.99.208:57213>;tag=2948097747.

Call-ID: 66543d467b5f5e3b767b68f32656def2@94.23.225.212.

CSeq: 102 INVITE.

Contact: <sip:41215500329@85.3.99.208:57213>.

--

U 2011/07/25 12:33:47.278116 94.23.225.212:5060 -> 85.3.99.208:57213

ACK sip:41215500329@85.3.99.208:57213 SIP/2.0.

Via: SIP/2.0/UDP 94.23.225.212:5060;branch=z9hG4bK1f717b08;rport.

From: "41215500329" <sip:41215500329@94.23.225.212>;tag=as1fa772f1.

To: <sip:41215500329@85.3.99.208:57213>;tag=2948097747.

Contact: <sip:41215500329@94.23.225.212>.

Call-ID: 66543d467b5f5e3b767b68f32656def2@94.23.225.212.

CSeq: 102 ACK.

User-Agent: Asterisk PBX.

--

U 2011/07/25 12:33:47.278254 94.23.225.212:5060 -> 212.147.8.105:51559

SIP/2.0 200 OK.

Via: SIP/2.0/UDP 192.168.1.118:51559;branch=z9hG4bKBZp9BSUX118SK;received=212.147.8.105;rport=51559.

From: <sip:41215500329@astrad.switzernet.com>;tag=DDD7p85H4y4vB.

To: <sip:0215500329@astrad.switzernet.com>;tag=as292c16fb.

Call-ID: 9a78def0-314c-122f-7ab8-a04e04420000.

CSeq: 15458990 INVITE.

User-Agent: Asterisk PBX.

--

U 2011/07/25 12:33:47.484536 212.147.8.105:51559 -> 94.23.225.212:5060

ACK sip:0215500329@94.23.225.212 SIP/2.0.

Via: SIP/2.0/UDP 192.168.1.118:51559;rport;branch=z9hG4bKc8F2Dmc1yaZcF.

Max-Forwards: 70.

From: <sip:41215500329@astrad.switzernet.com>;tag=DDD7p85H4y4vB.

To: <sip:0215500329@astrad.switzernet.com>;tag=as292c16fb.

Call-ID: 9a78def0-314c-122f-7ab8-a04e04420000.

CSeq: 15458990 ACK.

--

U 2011/07/25 12:33:53.065356 212.147.8.105:51559 -> 94.23.225.212:5060

BYE sip:0215500329@94.23.225.212 SIP/2.0.

Via: SIP/2.0/UDP 192.168.1.118:51559;rport;branch=z9hG4bKDH9tFFX4UKNZa.

Max-Forwards: 70.

From: <sip:41215500329@astrad.switzernet.com>;tag=DDD7p85H4y4vB.

To: <sip:0215500329@astrad.switzernet.com>;tag=as292c16fb.

Call-ID: 9a78def0-314c-122f-7ab8-a04e04420000.

CSeq: 15458991 BYE.

User-Agent: Telepathy-SofiaSIP/0.6.2 sofia-sip/1.12.10devel.

--

U 2011/07/25 12:33:53.065454 94.23.225.212:5060 -> 212.147.8.105:51559

SIP/2.0 200 OK.

Via: SIP/2.0/UDP 192.168.1.118:51559;branch=z9hG4bKDH9tFFX4UKNZa;received=212.147.8.105;rport=51559.

From: <sip:41215500329@astrad.switzernet.com>;tag=DDD7p85H4y4vB.

To: <sip:0215500329@astrad.switzernet.com>;tag=as292c16fb.

Call-ID: 9a78def0-314c-122f-7ab8-a04e04420000.

CSeq: 15458991 BYE.

User-Agent: Asterisk PBX.

--

U 2011/07/25 12:33:53.065554 94.23.225.212:5060 -> 85.3.99.208:57213

BYE sip:41215500329@85.3.99.208:57213 SIP/2.0.

Via: SIP/2.0/UDP 94.23.225.212:5060;branch=z9hG4bK7fb59a37;rport.

From: "41215500329" <sip:41215500329@94.23.225.212>;tag=as1fa772f1.

To: <sip:41215500329@85.3.99.208:57213>;tag=2948097747.

Call-ID: 66543d467b5f5e3b767b68f32656def2@94.23.225.212.

CSeq: 103 BYE.

User-Agent: Asterisk PBX.

--

U 2011/07/25 12:33:53.241047 212.147.8.105:51559 -> 94.23.225.212:5060

BYE sip:0215500329@94.23.225.212 SIP/2.0.

Via: SIP/2.0/UDP 192.168.1.118:51559;rport;branch=z9hG4bKDH9tFFX4UKNZa.

Max-Forwards: 70.

From: <sip:41215500329@astrad.switzernet.com>;tag=DDD7p85H4y4vB.

To: <sip:0215500329@astrad.switzernet.com>;tag=as292c16fb.

Call-ID: 9a78def0-314c-122f-7ab8-a04e04420000.

CSeq: 15458991 BYE.

User-Agent: Telepathy-SofiaSIP/0.6.2 sofia-sip/1.12.10devel.

 

Ngrep Log : [txt]

Limitation

 Le ZIP de l’installation Puppet de la version 7 d’Astrad n’est plus utilisable à cause  du module CPAN (l’installeur des modules Perl).

La facturation d’un appel entrant vers un compte qui dispose de plus un téléphone SIP ne passe pas correctement, Il faut remplacer le username dans le script ‘ast-rad-acc.pl’  par celui de l’URI.

Radius LOG [txt]

Référence

Implémentation des appels entrants simultanés dans Asterisk

http://switzernet.com/3/public/110724-astrad-simultaneous-call/

 

Tester la commande Dial d’Asterisk en précisant l’adresse IP et le port du téléphone

http://switzernet.com/3/public/110630-test-dial-for-incomming-call/

 

Master Mysql Astrad DBA V004

http://switzernet.com/3/public/110722-dba-v4/

 

Versions du Master MySQL-Astrad  (DBA)

http://switzernet.com/3/public/110317-db3-versions/

 

Astrad Versionning

http://switzernet.com/3/public/110126-astrad-versions/

 

Liste des fonctionnalités à ajouter dans Astrad

http://switzernet.com/3/public/110523-astrad-wish-list/

 

Problèmes des appels entrants causés par l’expiration du NAT port mapping

http://switzernet.com/3/public/110627-astrad-nat-port-mapping/

 

Envoyer des paquets UDP vide pour garder le port dans le router NAT ouvert (port mapping)

http://switzernet.com/3/public/110627-astrad-empty-udp-keepalive/