Configuration FreePBX Trunk SIP K-Net

Démarré par Armand, 18 Juin 2018 à 00:09:32

« précédent - suivant »

0 Membres et 2 Invités sur ce sujet

Bonjour,

J'essaye de configurer un FreePBX avec un trunk SIP K-Net mais je coince pour joindre le monde extérieur, je débute dans ce domaine.
Déjà au départ FreePBX me propose plusieurs types de trunk notamment chan_sip et pjsip, or je n'ai aucune idée de celui qu'il faut choisr.
J'ai tenté avec un pjsip avec les paramètres par défaut mais à priori la seule chose que j'arrive à faire c'est la réception d'appels.
Je n'ai rien réussi à faire avec une configuration basique d'un chan_sip trouvée dans un vieux post sur ce forum.
J'ai aussi essayé de trouver des pistes dans le manuel de configuration du Cisco SPA112 disponible sur le site de K-Net mais ça ne m'a pas aidé.
Quelqu'un peut-il me faire un petit pas à pas pour m'aider à configurer mon FreePBX ?

D'avance merci pour votre aide

Est-ce que tu veux avoir des postes enregistrés sur ton FreePBX et pouvoir passé des appels depuis ces postes en utilisant ta ligne VoIP K-net ?
Si  tel est le cas, il faut que tu configures ton FreePBX pour qu'il soit vu par le REGISTRAR K-net avec la bonne configuration (bon numéro d'enregistrement et bon mot de passe).

Après il y a toujours moyen de voir ce qui passe sur le reseau avec un tcpdump et un editeur de fichier tcpdump. Normalement tu dois avoir

  un REGISTER de ton FREEPBX vers K-NET, un 401 UNAUTHORIZED en reponse de K-NET , un nouveau REGISTER avec le mot de passe encodé grace au nounce recu dans le 401 et enfin un 200 OK en reponse.

  Lors d'un appel sortant, on a un INVITE, sur l'INVITE on peut aussi avoir cette sequence d'authentification mais cela est assez rare.






Voici en PJ le résultat de mon tcpdump, du coup c'est bon, si je comprends bien ?

Je vais tester avec un appel entrant et un appel sortant

En partant du principe que le screenshot que j'ai mis dans le poste précédent signifie que ma configuration de trunk est correcte.
Quand j'essaye de joindre le monde extérieur selon le dial pattern que je teste j'ai soit :

  • all circuits are busy now, please try again later
  • Your call cannot be completed as dialog. Please check the number and dial again.

Des idées ?

Quand j'essaye d'appeler un 06XX XX XX XX depuis l'extension 200, voilà le resultat.

#5

   -- Executing [s@macro-dialout-trunk:24] AGI("PJSIP/200-00000023", "sangomacrm.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/sangomacrm.agi
    -- <PJSIP/200-00000023>AGI Script sangomacrm.agi completed, returning 0
    -- Executing [s@macro-dialout-trunk:25] Set("PJSIP/200-00000023", "CHANNEL(hangup_handler_push)=crm-hangup,s,1") in new stack
    -- Executing [s@macro-dialout-trunk:26] NoOp("PJSIP/200-00000023", "CRM Finished") in new stack
    -- Executing [s@macro-dialout-trunk:27] GotoIf("PJSIP/200-00000023", "0?bypass,1") in new stack
    -- Executing [s@macro-dialout-trunk:28] ExecIf("PJSIP/200-00000023", "1?Set(CONNECTEDLINE(num,i)=00336XXXXXXXX)") in new stack
    -- Executing [s@macro-dialout-trunk:29] ExecIf("PJSIP/200-00000023", "1?Set(CONNECTEDLINE(name,i)=CID:0474XXXXXX)") in new stack
    -- Executing [s@macro-dialout-trunk:30] ExecIf("PJSIP/200-00000023", "0?Set(CONNECTEDLINE(name,i)=CID:(Hidden)0474XXXXXX)") in new stack
    -- Executing [s@macro-dialout-trunk:31] GotoIf("PJSIP/200-00000023", "0?customtrunk") in new stack
    -- Executing [s@macro-dialout-trunk:32] Dial("PJSIP/200-00000023", "PJSIP/00336XXXXXXXX@Knet,300,Tb(func-apply-sipheaders^s^1)") in new stack
    -- PJSIP/Knet-00000024 Internal Gosub(func-apply-sipheaders,s,1) start
    -- Executing [s@func-apply-sipheaders:1] ExecIf("PJSIP/Knet-00000024", "0?Set(CHANNEL(hangup_handler_push)=crm-hangup,s,1)") in new stack
    -- Executing [s@func-apply-sipheaders:2] NoOp("PJSIP/Knet-00000024", "Applying SIP Headers to channel") in new stack
    -- Executing [s@func-apply-sipheaders:3] Set("PJSIP/Knet-00000024", "SIPHEADERKEYS=") in new stack
    -- Executing [s@func-apply-sipheaders:4] ExecIf("PJSIP/Knet-00000024", "0?Set(Rheader=1)") in new stack
    -- Executing [s@func-apply-sipheaders:5] While("PJSIP/Knet-00000024", "0") in new stack
    -- Jumping to priority 9
    -- Executing [s@func-apply-sipheaders:10] ExecIf("PJSIP/Knet-00000024", "0?SIPRemoveHeader(Alert-Info:)") in new stack
    -- Executing [s@func-apply-sipheaders:11] ExecIf("PJSIP/Knet-00000024", "0?Set(PJSIP_HEADER(remove,Alert-Info)=)") in new stack
    -- Executing [s@func-apply-sipheaders:12] Return("PJSIP/Knet-00000024", "") in new stack
  == Spawn extension (from-pstn, 00336XXXXXXXX, 1) exited non-zero on 'PJSIP/Knet-00000024'
    -- PJSIP/Knet-00000024 Internal Gosub(func-apply-sipheaders,s,1) complete GOSUB_RETVAL=
    -- Called PJSIP/00336XXXXXXXX@Knet
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [s@macro-dialout-trunk:33] NoOp("PJSIP/200-00000023", "Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 21") in new stack
    -- Executing [s@macro-dialout-trunk:34] GotoIf("PJSIP/200-00000023", "0?continue,1:s-CHANUNAVAIL,1") in new stack
    -- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
    -- Executing [s-CHANUNAVAIL@macro-dialout-trunk:1] Set("PJSIP/200-00000023", "RC=21") in new stack
    -- Executing [s-CHANUNAVAIL@macro-dialout-trunk:2] Goto("PJSIP/200-00000023", "21,1") in new stack
    -- Goto (macro-dialout-trunk,21,1)
    -- Executing [21@macro-dialout-trunk:1] Goto("PJSIP/200-00000023", "continue,1") in new stack
    -- Goto (macro-dialout-trunk,continue,1)
    -- Executing [continue@macro-dialout-trunk:1] NoOp("PJSIP/200-00000023", "TRUNK Dial failed due to CHANUNAVAIL HANGUPCAUSE: 21 - failing through to other trunks") in new stack
    -- Executing [continue@macro-dialout-trunk:2] ExecIf("PJSIP/200-00000023", "1?Set(CALLERID(number)=200)") in new stack
    -- Executing [00336XXXXXXXX@from-internal:7] Macro("PJSIP/200-00000023", "outisbusy,") in new stack
    -- Executing [s@macro-outisbusy:1] Progress("PJSIP/200-00000023", "") in new stack
    -- Executing [s@macro-outisbusy:2] GotoIf("PJSIP/200-00000023", "0?emergency,1") in new stack
    -- Executing [s@macro-outisbusy:3] GotoIf("PJSIP/200-00000023", "0?intracompany,1") in new stack
    -- Executing [s@macro-outisbusy:4] Playback("PJSIP/200-00000023", "all-circuits-busy-now&please-try-call-later, noanswer") in new stack
    -- <PJSIP/200-00000023> Playing 'all-circuits-busy-now.ulaw' (language 'en')
    -- <PJSIP/200-00000023> Playing 'please-try-call-later.ulaw' (language 'en')
    -- Executing [s@macro-outisbusy:5] Congestion("PJSIP/200-00000023", "20") in new stack

#6
En utilisant un chan_sip j'arrive bien à me connecter au trunk KNet mais je ne peux ni recevoir ni emettre d'appel mais le message est plus clair :

Lors de l'emission d'un appel :

CoS mark 5
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
  == Spawn extension (from-trunk, 06XXXXXXXX, 1) exited non-zero on 'SIP/KnetSIP-00000002'
[2018-06-21 22:02:55] WARNING[11550][C-00000027]: chan_sip.c:24015 handle_response_invite: Received response: "Forbidden" from '<sip:00339XXXXXXXX@a.phone.kwaoo.net:5260>;tag=as66c19ca3'
  == Everyone is busy/congested at this time (1:0/0/1)
  == Spawn extension (macro-outisbusy, s, 5) exited non-zero on 'PJSIP/200-00000035' in macro 'outisbusy'
  == Spawn extension (from-internal, 0608311871, 7) exited non-zero on 'PJSIP/200-00000035'
  == Spawn extension (macro-hangupcall, s, 6) exited non-zero on 'PJSIP/200-00000035' in macro 'hangupcall'
  == Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/200-00000035'
  == Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/200-00000035'


Lors de la réception :
[2018-06-21 22:05:41] NOTICE[11550][C-00000029]: chan_sip.c:10877 process_sdp: No compatible codecs, not accepting this offer!


Configuration utilisée dans FreePBX :
CID :  <0474XXXXXX>

SIP settings > Peer details :

disallow=all
host=a.phone.kwaoo.net
port=5060
outboundproxy=a.phone.kwaoo.net
username=00339XXXXXXXX
authuser=00339XXXXXXXX
fromuser=00339XXXXXXXX
fromdomain=a.phone.kwaoo.net
secret=mdp
type=peer
dtmfmode=rfc2833
qualify=yes
insecure=port,invite
allow=ulaw
allow=gsm
allow=g729
context=from-trunk


Register String : 09XXXXXXXX:mdp@a.phone.kwaoo.net:5060~3600

Ceci est basée sur des élements de configuration trouvé sur ce forum


pbx*CLI> sip show channels
Peer             User/ANR         Call ID          Format           Hold     Last Message    Expiry     Peer     
0 active SIP dialogs



pbx*CLI> sip show registry
Host                                    dnsmgr Username       Refresh State                Reg.Time                 
a.phone.kwaoo.net:5060                  Y      09XXXXXXXX        3585 Registered           Thu, 21 Jun 2018 22:32:39
1 SIP registrations.
pbx*CLI>



pbx*CLI> sip show peers
Name/username             Host                                    Dyn Forcerport Comedia    ACL Port     Status      Description                     
KnetSIP/00339XXXXXXXX     178.250.209.54                              Yes        Yes            5060     OK (4 ms)                                   
1 sip peers [Monitored: 1 online, 0 offline Unmonitored: 0 online, 0 offline]
pbx*CLI>

Voici apès de longues heures de bidouillage ma configuration de Asterisk :
username=09XXXXXXXX
type=peer
secret=mot_de_passe
qualify=yes
port=5060
outboundproxy=a.phone.kwaoo.net
nat=yes
insecure=very
host=a.phone.kwaoo.net
fromuser=09XXXXXXXX
fromdomain=a.phone.kwaoo.net
dtmfmode=rfc2833
disallow=all
context=from-trunk
authuser=09XXXXXXXX
allow=alaw&ulaw&gsm&g729


Avec celle-ci j'arrive bien à m'enregistrer auprès du trunk, je peux même passer des appels mais je ne peux pas en recevoir.
Lors d'un appel entrant le téléphone sonne bien mais lorsque je décroche cela coupe immédiatement.
En activant l'option de debug de SIP j'ai l'erreur suivante : Retransmission timeout reached on transmission
Il semblerait que ce soit lié à un problème de NAT mais je ne vois pas où.
Mon Asterisk se trouve dérrière un pfSense qui fait le NAT (tout simple).
Avez-vous une idée ?