Asterisk und Fritzbox mit pjsip

Kaloschke

Neuer User
Mitglied seit
25 Aug 2019
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
Hallo,

Vorweg: ich denke, ich habe hier die meisten das Thema betreffenden Beiträge gelesen, komme aber trozdem nicht weiter.

Ich habe eine Türsprechanlage Wantec Monolith IP, die an eine Fritzbox 7490 angeschlossen ist.
Funktioniert soweit wie es soll.

Ich möchte nun ein Webphone entwickeln, welches ebenfalls mit der Wantec kommunizieren kann.
Hier wird lediglich Sprache benötigt, da das Video auf anderem Weg empfangen wird.

Da ich dazu ein WebRTC-Gateway benötige, habe ich auf einem RPi 4 Asterisk V16.11.1 mit pjsip installiert,
sowie auf der FB ein IP-Telefon mit Namen "ip-telefone"

Zwei Softphones 6001 und 6002 am Asterisk können mit einander kommunizieren, es ist mir jedoch auch nach langen
Recherchen nicht möglich, eine funktionierende Verbindung zwischen FB und Asterisk herzustellen.

Meine pjsip.conf lautet:

Code:
;=========== General settings ===========
[global]
type=global
user_agent=Asterisk PBX
endpoint_identifier_order=username,ip


[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
local_net=192.168.2.0/24

[transport-tcp]
type=transport
protocol=tcp
bind=0.0.0.0
local_net=192.168.2.0/24

[myfritz]
type=registration
transport=transport-tcp
outbound_auth = myfritz
server_uri = sip:[email protected]:5060
client_uri = sip:[email protected]:5060

[myfritz]
type = auth
auth_type = userpass
password = meinpassword
username = ip-telefon

[myfritz]
type = aor
contact = sip:192.168.2.1:5060

[ip-telefon]                   
type = endpoint
context = from-internal
outbound_auth = myfritz
aors = myfritz
7disallow=all
allow=ulaw
allow=alaw
allow=gsm
from_domain = 192.168.2.1
from_user = ip-telefon 

[myfritz]
type = identify
endpoint = ip-telefon
match = 192.168.2.1

[6001]
type=endpoint
context=from-internal
disallow=all
allow=ulaw
auth=6001
aors=6001

[6001]
type=auth
auth_type=userpass
password=meinpassword
username=6001

[6001]
type=aor
max_contacts=2
remove_existing=true

[6002]
type=endpoint
context=from-internal
disallow=all
allow=ulaw
auth=6001
aors=6001

[6002]
type=auth
auth_type=userpass
password=meinpassword
username=6001

[6002]
type=aor
max_contacts=2
remove_existing=true

Und meine extension.conf:

Code:
[general]
static=yes
writeprotect=no

[from-internal]

exten => 6001,1,Verbose(Rufe 6001 von ${CALLERID(num)})
same => n,Dial(PJSIP/6001)
same => n,Hangup()

exten => 6002,1,Verbose(Rufe 6002 von ${CALLERID(num)})
same => n,Dial(PJSIP/6002)
same => n,Hangup()

exten => ip-telefon,1,Verbose(Rufe von intern ip-telefon von ${CALLERID(num)})
same => n,Dial(PJSIP/ip-telefon)
same => n,Hangup()

Wenn ich vom Asterisk aus die FB anrufe, erhalte ich :

Code:
  == Setting global variable 'SIPDOMAIN' to '192.168.2.222'
    -- Executing [ip-telefon@from-internal:1] Verbose("PJSIP/6003-0000000c", "Rufe von intern ip-telefon von 6003") in new stack
Rufe von intern ip-telefon von 6003
    -- Executing [ip-telefon@from-internal:2] Dial("PJSIP/6003-0000000c", "PJSIP/ip-telefon") in new stack
    -- Called PJSIP/ip-telefon
  == Everyone is busy/congested at this time (1:1/0/0)
    -- Executing [ip-telefon@from-internal:3] Hangup("PJSIP/6003-0000000c", "") in new stack
  == Spawn extension (from-internal, ip-telefon, 3) exited non-zero on 'PJSIP/6003-0000000c'
RPI-OPENHAB*CLI>

Und von der FB aus das ip-telefon:

Code:
res_pjsip_session.c:3228 new_invite: Call from 'ip-telefon' (TCP:192.168.2.1:5060) to extension 's' rejected because extension not found in context 'from-internal'.
Es wäre wirklich toll, wenn hier jemand einen Tipp für mich hätte.

Viele Grüße
 
Zuletzt bearbeitet:
Hmm. Seltsam.
Ich habe für die Wahl FB nach Asterisk "geforderte" extension "s" in extension.conf eingefügt:

Code:
exten => s,1,Verbose(Rufe von Fritz  ip-telefon von ${CALLERID(num)})
 same => n,Dial(PJSIP/6001)
 same => n,Hangup()

Dann wird durchgewählt. Würde ich gerne verstehen.
Von Asterisk nach FB klappt nach wie vor nicht. Würde ich auch gerne verstehen (auch, wenn ich es nicht brauche).
 
Ich habe jetzt nur kurz drüber geschaut, aber ist das Konzept context ist bereits bekannt? Du hast den Digium Asterisk aus dem Kontext from-internal heraus auf der FRITZ!Box registriert, richtig? Dann sucht Asterisk bei einem eingehenden Anruf die Standard-Extension s im selben Kontext. Daher mein Tipp: Mal alles in den Kontext general legen. Und danach dann mit den Kontexten spielen.
 
Danke für den Hinweis. Ich wusste bisher gar nicht, was dieses "s" ist :).
Mach ich mich mal dran.
 
Ja, s ist die Default-Extension für eine Registrierung und daher die eingehende Extension. Diesen contact_user kannst Du manuell in der type=registration ändern. Oder so lassen. Ich denke, bei Dir sind eher die Kontexte das Problem.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.