PDA

Voir la version complète : Pb Trunk SIP entre OXE et Asterisk



Yohann29
30/03/2011, 14h50
Bonjour à tous,

j'essaie de réaliser une liaison SIP entre un OXE et un Asterisk.
Les deux se voient mais lorsque j'effectue un appel il y a des soucis.
Je m'explique :
- appel entre l'OXE (téléphone IP) et l'Asterisk (softphone x-lite), l'appel aboutit mais dès que je décroche avec X-lite l'appel se termine aussitôt. De plus, sur mon tél IP (coté OXE) l'appel est toujours en cours pour lui.
-appel entre softphone et tél IP, l'appel arrive mais dès que je décroche le tél IP, X-lite raccroche.


Voici un extrait de mes fichiers sip et extensions :

sip.conf
[general]
context=interne
bindaddr=10.10.10.200
disallow=all
allow=alaw
allow=ulaw
language=fr

[5020]
type=friend
fromuser=5020
host=dynamic
context=interne
callerid="X-Lite 5020"
secret=5020

[oxe]
type=friend
host=10.10.10.10
context=from_oxe
nat=no
language=fr

extensions.conf
[globals]

[general]
static=yes
writeprotect=no

[interne] ; context des postes 50X0

include => exterieur
include => from_oxe
exten => _5XXX,1,Answer()
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()


[from_oxe]
exten => _5XXX,1,Answer()
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()

;sortie sur le lien SIP avec le prefixe 9
[exterieur]
exten => _9.,1,Dial(SIP/oxe/${EXTEN:1})
same => n,Congestion()

Debug dans la CLI
Verbosity is at least 15
== Using SIP RTP CoS mark 5
-- Executing [5020@from_oxe:1] Answer("SIP/oxe-00000042", "") in new stack
-- Executing [5020@from_oxe:2] Dial("SIP/oxe-00000042", "SIP/5020") in new stack
== Using SIP RTP CoS mark 5
-- Called 5020
-- SIP/oxe-00000042 requested special control 20, passing it to SIP/5020-00000043
-- SIP/5020-00000043 is ringing
-- SIP/5020-00000043 answered SIP/oxe-00000042
-- Remotely bridging SIP/oxe-00000042 and SIP/5020-00000043
-- Got SIP response 420 "Bad Extension" back from 10.10.10.10:5060
== Spawn extension (from_oxe, 5020, 2) exited non-zero on 'SIP/oxe-00000042'

On peut donc voir qu'il y a un soucis puisqu'il y a une erreur 420 Mauvaise Passerelle retournée par l'OXE
D'après vous, d'où cela pourrait-il venir? pb de flux rtp? gestion des codecs?

Merci d'avance pour votre aide
J'espère que mon explication est assez claire

jean
30/03/2011, 15h45
le message exact est 420 bad extension... et pas pbm de passerelle. Est-ce que ton trunk défini sur l'oxe sait router ce numéro d'extension (5020 apparamment). Il faut peut être rajouter un préfixe, ou déclarer des droits sur l'oxe

Yohann29
30/03/2011, 16h14
Pour ma part, je pense que l'oxe sait router l'appel puisque mon téléphone sonne.
Le 5020 correspond à mon softphone donc coté Asterisk

Pour erreur 420 en effet c'est bad extension et non pas erreur de passerelle (je venais d'avoir l'erreur juste avant c'est pour sa lol)
apparemment cela signifie que le serveur ne comprend pas la requête.

jean
30/03/2011, 16h16
c'est juste... le codec alors ? il faut des cartes DSP sur l'oxe me semble-t-il. As tu regardé les traces SIP qui arrivent sur l'asterisk (j'aime bien ngrep ou tcpdump), dès fois, des infos peuvent apparaitre

celya
30/03/2011, 16h22
Du 'set sip debug ip' ou peer dans la cli peu aider

jean
30/03/2011, 16h24
j'y pense... si l'oxe rejette l'appel, ca doit bien apparaitre dans des logs de ce coté... y as tu accès ?

Yohann29
30/03/2011, 16h36
Je vais regarder ça.
Voici un extrait d'une capture wireshark sur asterisk, on voit bien que l'oxe rejette l'appel :

http://dl.free.fr/getfile.pl?file=/TDJbXuoh

@oxe : 10.10.10.10
@ Asterisk : 10.10.10.200

jean
30/03/2011, 16h49
je suis pas super expert en sip... mais voila ton dialogue

.10 (oxe) .200 (ast)

oxe -> ast : invite
<- trying
-> ok
<- ack
(jusque la, ca va)

puis:
-> invite 5020 : bizarre... ast répond, mais oxe reinvite...
-> ok
<- ack

puis:
ast -> 10.10.10.1 (je suppose le xlite connecté à ast)
<- ringing
-> ok
<- ack

ast -> oxe : invite 3030 !!!

ast -> xlite : invite 5020 - repercute la double invite

oxe -> ast : 420 bad extension...


à mon avis, le 420 est en réponse au invite 3030..... pourquoi ton asterisk appelle le OXE sur le poste 3030 ?

Yohann29
30/03/2011, 17h50
Le 3030 est un n° interne de mon OXE. C'est un téléphone IP.

jean
30/03/2011, 18h06
ok - je cseq et le siptag sont identiques à celui de l'invite, donc, le 420, bad extension, est bien une réponse de l'oxe à l'invit.

1) est-ce normal ? tu peux etre en prod et avoir d'autres appels - sinon, il faudrait arriver à mettre cela de coté !

2) le seul BYE de ton dialogue SIP est émis par ton X-Lite. C'est donc LUI qui raccroche - il faut regarder de ce coté pourquoi...

Yohann29
30/03/2011, 18h45
Merci de ton aide jean.
Pour info c'est une maquette, et tous les appels sont identiques (marche pas :Cry: )
En effet, c'est mon X-lite qui raccroche. Il sonne mais dès que je décroche, il raccroche aussitot.

Le problème est que sur la CLI d'asterisk, il me met que c'est l'OXE qui envoie BAD Extension.
Sauf que coté OXE, je ne vois rien dans la trace SIP.

Je ne comprends rien sur ce coup là, perso.

Yohann29
30/03/2011, 18h56
Désolé je viens de trouver une erreur coté OXE finalement en allant voir dans les traces SIP.
Voilà ce qu'il me met :


1301497360 -> 0[CMotorCall::onReceiveRequest] route already analyzed.
1301497360 -> 114c[CMotorCall::onReceiveRequest] request for gateway.
1301497360 -> 114c[CMotorCall::checkSupportedRequest] timer is unsupported.
1301497360 -> [isValidGwExt] ext gw 100 is valid
1301497360 -> 114c[CMotorCall ABCF ExtGW
1301497360 -> 114c[CMotorCall::replyToUnsupportedRequest] Unsupported timer added.
1301497360 -> SEND MESSAGE TO NETWORK (10.10.10.200:5060 [UDP]) (BUFF LEN = 463)
----------------------utf8-----------------------
SIP/2.0 420 Bad Extension
Allow: INVITE, ACK, CANCEL, BYE, PRACK, NOTIFY, REFER, SUBSCRIBE, OPTIONS, UPDATE
User-Agent: OmniPCX Enterprise R9.1 i1.605.21
Unsupported: timer
To: <sip:3030@10.10.10.10;user=phone>;tag=aa821afe30fa5d379b9123fab5706f22
From: <sip:5020@10.10.10.200;user=phone>;tag=as54e0cbde
Call-ID: 920710f4157275551a6e215d4b7d2350@10.10.10.10
CSeq: 102 INVITE
Via: SIP/2.0/UDP 10.10.10.200:5060;branch=z9hG4bK4784baf8
Content-Length: 0

Mais d'où viendrait le problème à ce moment là? coté OXE ou Asterisk ?
merci d'avance

jean
30/03/2011, 19h33
1/ c'est le asterisk qui emet un appel vers le OXE, vers le poste 3030... regarde dans ton dialplan pourquoi... augmente les traces sur la CLI asterisk, etc...

2/ ton dialplan est bizarre
tu définis deux fois la séquence
exten => _5XXX,1,Answer()
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()
dans [internet] - une fois en clair, une fois en inclusion

fais un core show dialplan

3/ pour le pbm de timer, il n'est pas exclut que l'oxe n'aime pas les timers standards asterisk - tout sur les timers: https://issues.asterisk.org/file_download.php?file_id=15454&type=bug - essaie de jouer avec les parametres

il te faut d'abord regler le 1/ avant de te prendre la tete avec les timers. c'est peut être juste un warning !

Yohann29
31/03/2011, 08h49
Pour le 1/ je ne vois pas trop ce que tu veux dire.
C'est moi qui émet un appel depuis mon X-lite.

Pour le 2/ j'ai rectifié c'est bon

Pour le 3/ je regarde ça.

Merci de m'aider

Yohann29
31/03/2011, 10h32
J'ai trouvé.
J'avais ajouté le paramètre canreinvite=yes dans mon sip.conf, c'est celui là qui me mettait la misère je pense.
J'ai tout de même réglé les timers à l'identique de chaque coté, cela fonctionne.
Merci Jean, où as tu trouvé ta doc stp? elle est intéressante

jean
31/03/2011, 14h21
la doc sur les timers ? http://tinyurl.com/6b88ow3

:-) content que ca marche...

note: pour le 1/ il y a bien un appel qui partait de l'asterisk vers oxe dans les traces

therebel23
02/04/2011, 10h58
Bad extension = Problème sur ton plan de numérotation dans l'OXE = Il ne reconnait pas le numéro que tu veux appeler.

UPDATE : j'arrive après la bataille c'est reglé à priori !