Auf Anruf vom Hauseingang wird falsch reagiert.

Kaloschke

Neuer User
Mitglied seit
25 Aug 2019
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Hallo,
ich habe auf einem Pi4 einen Asterisk 16.11.1 laufen. Auf ihm sind als Endpoints u.a. ein WebRTC-Anschluss 6004, ein Fritzbox IP-Telefon 621 und eine SIP-Hauseingangsstation 622 (Wantec-IP) ingerichtet.
Ich kann über ein DECT-Telefon das IP-Telefon 621 anrufen und werde auf den Anschluss 6004 weitergeleitet. Nun habe ich in der extensions.conf und der pjsip.conf die Einstellungen für das IP-Telefon kopiert und lediglich die nötigen Änderungen für den Hauseingang vorgenommen.
Wenn ich nun draußen klingele, antwortet 6004 auf 621.
Nun werden einige sagen, "Klar, sieht man doch sofort, woran es liegt". Ich leider nicht :-(
Hier meine Daten:
pjsip.conf

Code:
[global]
max_forwards=70
user_agent=Raspberry Pi BPX
default_realm=rpiopenhab.local
endpoint_identifier_order=ip,username
keep_alive_interval=300

[udp_transport]
type=transport
protocol=udp
bind=0.0.0.0
local_net=192.168.2.0/24
tos=af42
cos=3

[wss_transport]
type=transport
protocol=wss
bind=0.0.0.0

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

[tls_transport]
type=transport
protocol=tls
bind=0.0.0.0
cert_file=/home/pi/certs/raspberrypi.crt
priv_key_file=/home/pi/certs/raspberrypi.key
cipher=ADH-AES256-SHA,ADH-AES128-SHA
method=tlsv1

[acl] 
type=acl
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.0.0

[single_aor](!)
max_contacts=1
qualify_frequency=120
remove_existing=true

[userpass_auth](!)
auth_type=userpass

[basic_endpoint](!)
moh_suggest=default
context=from-extensions
inband_progress=no
rtp_timeout=120
message_context=textmessages
allow_subscribe=yes
subscribe_context=subscriptions
direct_media=no
dtmf_mode=rfc4733
device_state_busy_at=1
disallow=all

[phone_endpoint](!)
allow=ulaw,alaw,g722,gsm,vp9,vp8,h264

[webrtc_endpoint](!)
transport=wss_transport
allow=ulaw,vp9,vp8,h264
webrtc=yes
use_avpf=yes
media_encryption=dtls
dtls_verify=fingerprint
dtls_setup=actpass
ice_support=yes
media_use_received_transport=yes
rtcp_mux=yes
dtls_cert_file=/home/pi/certs/raspberrypi.crt
dtls_private_key=/home/pi/certs/raspberrypi.key
dtls_ca_file=/home/pi/ca/InnovateAsterisk-Root-CA.crt

.
.
.

[6004](basic_endpoint,webrtc_endpoint)
type=endpoint
callerid="Nirwana4" <6004>
auth=6004
aors=6004
[6004](single_aor)
type=aor
[6004](userpass_auth)
type=auth
username=6004
password=passwort


[621]         
type = endpoint
context=from-myfritz
inband_progress=no
rtp_timeout=120
message_context=textmessages
allow_subscribe=yes
subscribe_context=subscriptions
direct_media=no
dtmf_mode=rfc4733
device_state_busy_at=1
disallow=all
allow=ulaw,alaw,g722,gsm,vp9,vp8,h264
outbound_auth = 621
aors = 621
from_domain = 192.168.2.1
from_user = ip-telefon    

[621]
type=registration
;transport=transport-tcp
outbound_auth = 621
server_uri = sip:192.168.2.1:5060 
client_uri = sip:[email protected]:5060  
contact_user = from_fritz

[621]
type = auth
auth_type = userpass
password = passwort
username = ip-telefon 

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

[621]
type = identify
endpoint = 621 
match = 192.168.2.1 


[622]                    
type = endpoint
context=from-mydoor
inband_progress=no
rtp_timeout=120
message_context=textmessages
allow_subscribe=yes
subscribe_context=subscriptions
direct_media=no
dtmf_mode=rfc4733
device_state_busy_at=1
disallow=all
allow=ulaw,alaw,g722,gsm,vp9,vp8,h264
outbound_auth = 622
aors = 622
from_domain = 192.168.2.1 
from_user = Wantec_1     


[622]
type=registration
;transport=transport-tcp
outbound_auth = 622
server_uri = sip:192.168.2.1:5060  
client_uri = sip:[email protected]:5060  
contact_user = from_door

[622]
type = auth
auth_type = userpass
password = passwort
username = Wantec_1 

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

[622]
type = identify
endpoint = 622 
match = 192.168.2.1

extensions.conf
Code:
[general]
static=yes
writeprotect=yes
priorityjumping=no
autofallthrough=no

[globals]
ATTENDED_TRANSFER_COMPLETE_SOUND=beep

[subscriptions]
exten => 6004,hint,PJSIP/6004
exten => 621,hint,PJSIP/621
exten => 622,hint,PJSIP/622

[from-extensions]
exten => *65,1,Gosub(moh,s,1)
exten => 6004,1,Gosub(dial-extension,s,1,(6004))

exten => _[+*0-9].,1,NoOp(You called: ${EXTEN})
 same => n,Dial(PJSIP/${EXTEN})
 same => n,Hangup()

exten => _[+*0-9].,n,Hangup()

exten => e,1,Hangup()

[from-myfritz]
exten => from_fritz,1,Verbose(from-myfritz: Anruf von ${CALLERID(num)})
 same => n,Dial(PJSIP/6004)
 same => n,hangup()

[from-mydoor]
exten => from_door,1,Verbose(from-mydoor: Anruf von ${CALLERID(num)})
 same => n,Dial(PJSIP/6004)
 same => n,hangup()

[dial-extension]
exten => s,1,NoOp(Calling: ${ARG1})
exten => s,n,Dial(PJSIP/${ARG1},30)
exten => s,n,Hangup()

exten => e,1,Hangup()

asterisk-cli
Code:
  == Setting global variable 'SIPDOMAIN' to '192.168.2.222'
    -- Executing [[email protected]:1] Verbose("PJSIP/621-00000002", "from-myfritz: Anruf von **622") in new stack
from-myfritz: Anruf von **622
    -- Executing [[email protected]:2] Dial("PJSIP/621-00000002", "PJSIP/6004") in new stack
    -- Called PJSIP/6004
    -- PJSIP/6004-00000003 is ringing
    -- PJSIP/6004-00000003 is ringing
    -- PJSIP/6004-00000003 answered PJSIP/621-00000002
       > 0xb3f8c7a8 -- Strict RTP learning after remote address set to: 88.66.252.219:64162
       > 0xb3f85600 -- Strict RTP learning after remote address set to: 192.168.2.1:7080
    -- Channel PJSIP/6004-00000003 joined 'simple_bridge' basic-bridge <0fd3fce1-4a92-4c3f-a430-4971bac45acd>
    -- Channel PJSIP/621-00000002 joined 'simple_bridge' basic-bridge <0fd3fce1-4a92-4c3f-a430-4971bac45acd>
       > 0xb3f8c7a8 -- Strict RTP learning after ICE completion
       > 0xb3f8c7a8 -- Strict RTP learning after remote address set to: 192.168.2.6:64162
       > 0xb3f8c7a8 -- Strict RTP switching to RTP target address 192.168.2.6:64162 as source
       > 0xb3f85600 -- Strict RTP switching to RTP target address 192.168.2.1:7080 as source
    -- Channel PJSIP/621-00000002 left 'simple_bridge' basic-bridge <0fd3fce1-4a92-4c3f-a430-4971bac45acd>
    -- Channel PJSIP/6004-00000003 left 'simple_bridge' basic-bridge <0fd3fce1-4a92-4c3f-a430-4971bac45acd>
  == Spawn extension (from-myfritz, from_fritz, 2) exited non-zero on 'PJSIP/621-00000002'

Es greift also in der extensions.conf der Abschnitt [from-myfritz] anstatt [from-mydoor]. Aber warum?
 

Kaloschke

Neuer User
Mitglied seit
25 Aug 2019
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Ein IP-Telefon wird wohl von der FritzBox anders behandelt als eine Türstation. Außerdem habe ich übersehen, dass schon von meiner Türstation aus schon die 621 angewählt wird. Das erklärt die Ausgabe oben in asterisk-cli.
Leider ist so eine Kommunikation mit der Türstation nicht möglich.

Neu gefragt: Wie schaffe ich es vom Asterisk-Endpoint 6004 aus mit der Türstation zu sprechen?
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
13,338
Punkte für Reaktionen
457
Punkte
83
Moinsen


Indem du aus dessen "context =", den du übrigens nicht definiert hast, nehme also mal an, dass es dann der [default] Kontext ist, eine Verbindung mit Dial() herstellst.
Nun stellt sich die Frage, ob dies über die FRITZ!Box oder direkt zur Türstation* erfolgen soll/kann.

Bei der extensions.conf könnte ich helfen, wenn ich mehr Verständniss für chan_pjsip.so (pjsip.conf) hätte, bin immer noch auf chan_sip.so (sip.conf).

* Dazu muss aber aber geklärt werden, ob die SIP-Hauseingangsstation 622 (Wantec-IP) auf eingehende SIP URI Calls reagiert, oder sie sich doch am Asterisk registrieren muss.



"Es greift also in der extensions.conf der Abschnitt [from-myfritz] anstatt [from-mydoor]. Aber warum?"

Deswegen, möcht ich mal behaupten...
Rich (BBCode):
[621]    
type = endpoint
context=from-myfritz
inband_progress=no
rtp_timeout=120
message_context=textmessages
allow_subscribe=yes
subscribe_context=subscriptions
direct_media=no
dtmf_mode=rfc4733
device_state_busy_at=1
disallow=all
allow=ulaw,alaw,g722,gsm,vp9,vp8,h264
outbound_auth = 621
aors = 621
from_domain = 192.168.2.1
from_user = ip-telefon
Gewissheit bekommst du, wenn du das änderst und die Meldungen auswertest.
Wenn dem so ist, sucht Asterisk auch mit der pjsip.conf den erstbesten Peer wo die IP mit eingehender übereinstimmt, nur um dessen Kontext zu nutzen.
Auch hier sollte gelten: Ohne "context =" wird der als default Definierte genutzt.
Kannste bei der Gelegenheit auch gleich mal checken ;)
 
Zuletzt bearbeitet:

Kaloschke

Neuer User
Mitglied seit
25 Aug 2019
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Erstmal vielen Dank für Deine Hilfe.

Ich dachte, ich hätte den Kontext mit
Code:
[from-mydoor]
exten => from_door,1,Verbose(from-mydoor: Anruf von ${CALLERID(num)})
same => n,Dial(PJSIP/6004)
same => n,hangup()
definiert.
Aber das ist wohl alles Quatsch von mir. Die Türstation ist als SIP-Client an der Fritzbox registriert. Das sollte auch so bleiben, denn im FritzFon erscheint dann ein Video der Türkamera. In den Einstellungen der Türstation kann ich die Nebenstellen angeben, die gegebenenfalls angerufen werden sollen, also die FritzFons. Nun habe ich dort auch die 621 - das IP-Telefon - eingetragen, um eben die Asterisk-Nebenstelle zu erreichen. Vom FritzFon aus klappt das ja.
Dann machen die Einträge zur 622 in der extensions.conf und der pjsip,conf keinen Sinn. Ich will die Asterisk-Nebenstelle ja über die Fritzbox 621 erreichen.
Habe sie nun gelöscht. Der Endpoint 6004 wird nach wie vor von der Tür angerufen. Wenn der Anruf angenommen wird, wird die Verbindung sofort beendet. Also alles auf Anfang :(.
Ich hätte gedacht, wenn das FritzFon 610 das IP-Telefon 621 anruft und die Asterisk-6004 dann mit der 610 sprechen kann, sollte das auch mit der Türstation 622 klappen.
 

Erhalten Sie 3CX für 1 Jahr kostenlos!

Gehostet, in Ihrer privaten Cloud oder on-Premise! Ganz ohne Haken. Geben Sie Ihren Namen und Ihre E-Mail an und los geht´s:

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.
oder via