[Problem] Asterisk Chat zwischen 2 Smartphoneapps Problem

brenner23

Neuer User
Mitglied seit
29 Mai 2011
Beiträge
136
Punkte für Reaktionen
0
Punkte
16
Hallo,
also hab mal den befehl MessageSend() mal mit eingebaut, meine idee war mit Linphone z.B. sich gegenseitig zu nachrichten zu schreiben.
Also wenn ich den Teilnehmer B eine Nachricht schreibe, dann Offnet sich bei B auch das "chatfenster" und wenn ich antworte sollte die antwort auch im selbigen bei A wieder ankommen aber Pustekuchen.
Statdessen es geht ein neues "Chatfenster" bei A auf..... und die Antwort darf ich im anderen Fenster schreiben ... was nicht sinn der Sache ist ...
ich hab das gefühl es hat was mit der Absenderadresse zu tun ?!?

Code:
[messages]
exten => _X.,1,NoOp(Messages --> Makro)
 same => n,NoOp(Orig. To : ${MESSAGE(to)})
 same => n,NoOp(Orig. From : ${MESSAGE(from)})
 same => n,NoOp(Orig. Body : ${MESSAGE(body)})
; Modify TO
 same => n,Set(ACTUALTO_CUT=${CUT(MESSAGE(to),@,1)})
 same => n,Set(ACTUALTO_IP=${CUT(MESSAGE(to),@,2)})
 same => n,Set(ACTUALTO_A=${CUT(ACTUALTO_CUT,:,1)})
 same => n,Set(ACTUALTO_B=${CUT(ACTUALTO_CUT,:,2)})

; Modify FROM
 same => n,Set(ACTUALFROM_CUT_A=${CUT(MESSAGE(from),<,2)})
 same => n,Set(ACTUALFROM_CUT=${CUT(ACTUALFROM_CUT_A,>,1)})
 same => n,Set(ACTUALFROM_CUT=${CUT(ACTUALFROM_CUT,@,1)})
 
 same => n,Set(ACTUALFROM_CUT_AA=${CUT(ACTUALFROM_CUT_A,@,2)})
 same => n,Set(ACTUALFROM_IP=${CUT(ACTUALFROM_CUT_AA,>,1)})
 
 same => n,Set(ACTUALFROM_A=${CUT(ACTUALFROM_CUT,:,1)})
 same => n,Set(ACTUALFROM_B=${CUT(ACTUALFROM_CUT,:,2)})

 same => n,Set(DEVSTATE=${DEVICE_STATE(${ACTUALTO_B}))

;same => n,GotoIf($["${DEVSTATE}" = "INVALID"]?error0)
 same => n,GotoIf($["${DEVSTATE}" = "UNAVAILABLE"]?error0)
 same => n,GotoIf($["${DEVSTATE}" = "UNKNOWN"]?error0)

;same => n,MessageSend(pjsip:${ACTUALTO_B},${MESSAGE(from)})
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Nur eines ist zur Zeit aktiviert andere ist mit ";" auskommentiert!
;Version mit *nornmalen* einstellungen
 same => n,MessageSend(pjsip:${ACTUALTO_B},<sip:${ACTUALFROM_B}@${ACTUALFROM_IP}>)

;Version mit *ServerIP* einstellungen
 ;same => n,MessageSend(pjsip:${ACTUALTO_B},<sip:${ACTUALFROM_B}@${SYSTEMIP}>)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 same => n,Hangup()
 
 same => n(error0),NoOp( --> GoTo -->> INVALID)
 same => n,Set(MESSAGE(body)=[SYSTEM]Your message to ${ACTUALTO_B} has failed. ${ACTUALTO_B} ! (Something has going wrong or is not aviable) )
 same => n,NoOp(MessageSend --> pjsip:${ACTUALFROM_B},<sip:${ACTUALTO_B}@${ACTUALFROM_IP}>)
;same => n,MessageSend(pjsip:${ACTUALFROM_B},<sip:${ACTUALTO_B}@${ACTUALTO_IP}>)
 same => n,MessageSend(pjsip:${ACTUALFROM_B},Asterisk_NoReply)
 same => n,Hangup()

Hat jemand eine idee ???

lg
 
Moinsen

Wird von einen Channel in einen anderen gehüpft, ändert sich auch dessen Namensraum/Namespace

Lösungsvorschlag
Bleib beim Chatten (lass die peers) im Channel, wechsel den nicht.

Wenn du Windows nutzt, empfehle ich dir Phoner-Lite zum Chat Testen.
Auch an die Linphones ;)
...da kann ein Debug-Log zugeschaltet werden, in Echtzeit zu beobachten.
PS: Chatten mit/an SIP-Klienten, die das unterstützen, sollte auch direkt, ohne Asterisk, funktionieren.
...also mit <sip: benutzername@geräte_ip:Portnummer >
 
Zuletzt bearbeitet:
Halloo,
ich hab mal auf

same => n,MessageSend(pjsip:${ACTUALTO_B},${MESSAGE(from)})
umgestellt, ich hab bemerkt das Linphone etwas doof ist was "Chat" angeht mit den @IP-Adresse...
ich hab im meinem Backup noch CS-Simple App gefunden was ich nicht mehr im Apstore finde...
Damit klappt es komischer weise , da ich auch keine sip@IP-Adresse sehe...

Das mit dem Chatkanal da brauch ich noch ein paar infos, bzw. wie bekomme ich die IP von dem Endgerät raus was ich erreichen will

Code:
[messages]
exten => _X.,1,NoOp(Messages --> Makro)
 same => n,NoOp(Orig. To : ${MESSAGE(to)})
 same => n,NoOp(Orig. From : ${MESSAGE(from)})
 same => n,NoOp(Orig. Body : ${MESSAGE(body)})
; Modify TO
 same => n,Set(ACTUALTO_CUT=${CUT(MESSAGE(to),@,1)})
 same => n,Set(ACTUALTO_IP=${CUT(MESSAGE(to),@,2)})
 same => n,Set(ACTUALTO_A=${CUT(ACTUALTO_CUT,:,1)})
 same => n,Set(ACTUALTO_B=${CUT(ACTUALTO_CUT,:,2)})

; Modify FROM
 same => n,Set(ACTUALFROM_CUT_A=${CUT(MESSAGE(from),<,2)})
 same => n,Set(ACTUALFROM_CUT=${CUT(ACTUALFROM_CUT_A,>,1)})
 same => n,Set(ACTUALFROM_CUT=${CUT(ACTUALFROM_CUT,@,1)})
 
 same => n,Set(ACTUALFROM_CUT_AA=${CUT(ACTUALFROM_CUT_A,@,2)})
 same => n,Set(ACTUALFROM_IP=${CUT(ACTUALFROM_CUT_AA,>,1)})
 
 same => n,Set(ACTUALFROM_A=${CUT(ACTUALFROM_CUT,:,1)})
 same => n,Set(ACTUALFROM_B=${CUT(ACTUALFROM_CUT,:,2)})

 same => n,Set(DEVSTATE=${DEVICE_STATE(${ACTUALTO_B}))

;same => n,GotoIf($["${DEVSTATE}" = "INVALID"]?error0)
 same => n,GotoIf($["${DEVSTATE}" = "UNAVAILABLE"]?error0)
 same => n,GotoIf($["${DEVSTATE}" = "UNKNOWN"]?error0)

 same => n,MessageSend(pjsip:${ACTUALTO_B},${MESSAGE(from)})
 
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.