Aide message de linphone avec asterisk

Bonjour,

Je rencontre un problème avec la messagerie instantanée entre deux clients Linphone configurés avec Asterisk (version 20.12.0).

Mon architecture :

  • Deux utilisateurs PJSIP : 1000 (Hugo) et 1001 (Max)
  • Chaque utilisateur utilise Linphone sur une machine virtuelle Windows 11
  • La messagerie texte fonctionne mais les messages n’apparaissent pas dans la même conversation côté Linphone

Exemple du problème :

  • Quand Max (1001) envoie un message à Hugo (1000), Hugo le reçoit dans une discussion avec le bon nom (“Max”).
  • Mais lorsque Hugo (1000) répond, Max reçoit le message dans une nouvelle conversation au nom “1000” (au lieu de “Hugo”).

J’ai tenté d’utiliser la fonction MessageSend() dans le dialplan avec :

MessageSend(pjsip:${EXTEN},${MESSAGE(from)})

mais cela provoque l’erreur :

WARNING: res_pjsip.c:3338 ast_sip_update_to_uri: To address '1000@192.168.23.13' is not a valid SIP/SIPS URI

J’aimerais que tous les messages soient regroupés dans une seule discussion Linphone, en affichant les noms définis dans callerid et non les IDs bruts.

voisi mon pjsip.conf:

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0:5060

[1000]
type=endpoint
context=interne
disallow=all
allow=ulaw,alaw
auth=auth1000
aors=1000
message_context=messages
callenrid=“Hugo” sip:1000@192.168.23.12

[auth1000]
type=auth
auth_type=userpass
password=motdepasse1000
username=1000

[1000]
type=aor
max_contact=1

[1001]
type=endpoint
context=interne
disallow=all
allow=ulaw,alaw
auth=auth1001
aors=1001
message_context=messages
callenrid=“Max” sip:1000@192.168.23.12

[auth1001]
type=auth
auth_type=userpass
password=motdepasse1001
username=1001

[1001]
type=aor
max_contact=1

et mon extensions.conf c’est ça:

[general]
static=yes
writeprotect=no

[interne]
exten => 1000,1,Dial(PJSIP/1000)
same => n,Hangup()

exten => 1001,1,Dial(PJSIP/1001)
same => n,Hangup()

[messages]
exten => _X.,1,NoOp(Message reçu de ${MESSAGE(from)} vers ${EXTEN})
same => n,NoOp(Contenu : ${MESSAGE(body)})

; Extraire le numéro SIP de l’expéditeur
same => n,Set(FROMNUM=${CUT(CUT(MESSAGE(from),@,1),:,2)})

; Si c’est Hugo (1000), on envoie à Max
same => n,GotoIf($[“${FROMNUM}” = “1000”]?from_hugo:from_max)

same => n(from_hugo),MessageSend(pjsip:1001,“Hugo_Prem” sip:1000@192.168.23.1
same => n,Hangup()

same => n(from_max),MessageSend(pjsip:1000,“Max_Deuz” sip:1001@192.168.23.13)
same => n,Hangup()

Merci d’avance pour votre aide :folded_hands: