Archivio

Archive for the ‘VoIP:Cisco’ Category

GNR Virtuale Clouditalia e Call Manager Express

03/12/2013 15 commenti

Sul lavoro ne capita di tutti i colori. Quando si tratta di mettere le mani su roba CISCO poi, che intende il VoIP in maniera molto proprietaria, son dolori. E sì perché il marchio leader del networking ha pensato, ormai da anni, la sua bella soluzione voip e non ammette interferenze dall’esterno…o quasi.

Quando mi sono ritrovato a configurare un account VoIP Clouditalia con selezione passante su un gateway montante IOS 15.1  e Call Manager Express ho cambiato colore del viso! Ma alla fine, anche senza certificazione, in qualche modo ne sono uscito.

La release in questione offre una serie di comandi, non ben documentati, che suppliscono alle carenze della famiglia 12, con la quale l’unica strada era ricorrere a script TCL legati ai dial-peers. Questi comandi permettono di manipolare i pacchetti SIP e raggiungere lo scopo che ci prefiggiamo. Qual’è lo scopo? Estrarre l’effettivo chiamato ingresso, perché Clouditalia manda sempre lo stesso numero sulla SIP Request URI, ma mette l’effettivo chiamato nella TO URI. Una scelta che ci rende la vita difficile in ambito CISCO, ma già recepita da molti centralini nativi voip e non.

Il primo blocco di comandi definisce le regole di manipolazione della segnalazione SIP:

voice class sip-profiles 1
request INVITE peer-header sip To copy “sip:(.*)@” u01
request CANCEL peer-header sip To copy “sip:(.*)@” u01
request INVITE sip-header SIP-Req-URI modify “.*@(.*)” “INVITE sip:\u01@\1”
request CANCEL sip-header SIP-Req-URI modify “.*@(.*)” “CANCEL sip:\u01@\1”

In pratica si copia la TO URI e si sostituisce alla SIP Request URI, unico sistema per poi matchare i dial-peers che seguono.

Quindi si imposta due regole di “ingaggio” per beccare il chiamato:

voice class uri TRUNK sip
user-id 01234567..

voice class sip-copylist 1
sip-header TO

Il grosso è fatto ma già arrivare fino a qui mi ha fatto penare!

Concludiamo con un paio di dial-peers che attuano quanto definito.  Il primo cattura il pacchetto:

dial-peer voice 99 voip
description incoming SIP Trunk
session protocol sipv2
session target sip-server
incoming uri to TRUNK
voice-class codec 1
voice-class sip copy-list 1

Il secondo lo modifica e lo ributta nel dial-plan:

dial-peer voice 300 voip
description to/from ccme
destination-pattern 01234567..
session protocol sipv2
session target ipv4:<IP Locale CCME>
voice-class codec 1
voice-class sip profiles 1
dtmf-relay rtp-nte
no vad

Naturalmente l’account principale deve essere registrato:

sip-ua
credentials username 0123456700 password 7 <password account voip> realm voiptrunk.eutelia.it
keepalive target dns:voip.eutelia.it
authentication username 0123456700 password 7 <password account voip> realm voiptrunk.eutelia.it
nat symmetric role active
nat symmetric check-media-src
no remote-party-id
retry invite 2
retry response 3
retry bye 3
retry cancel 3
retry register 10
timers connect 100
timers keepalive active 100
registrar dns:voip.eutelia.it expires 900
sip-server dns:voip.eutelia.it
connection-reuse
host-registrar

I purisiti mega certificati troveranno che dire, ma vi assicuro che a uno come me sarebbe servito come il pane trovare istruzioni del genere! Quindi sotto con i commenti ma non inferite troppo.

P.S. Per i soliti svegli: 01234567XX è un GNR di esempio…sostituite la vostra radice, mi raccomando.

Categorie:VoIP:Cisco, VoIP:Info