ODOIP fournit la connectivité voix (numéros géographiques, SDA, minutes) ; votre IPBX gère vos postes et votre plan d'appel interne. Les deux communiquent par un trunk SIP.
Un appel traverse plusieurs équipements. Côté ODOIP, un SBC (contrôleur de session) reçoit et sécurise le trafic de l'opérateur, puis le cœur de plateforme (sip.odoip.fr) applique le routage, la facturation et la présentation du numéro, avant de livrer l'appel à votre IPBX.
| Élément | Rôle |
|---|---|
| Numéro tête de ligne | Numéro principal du trunk. Sert d'identité d'enregistrement et de numéro présenté par défaut en sortant. |
| SDA / DID | Numéros additionnels rattachés au trunk. Chacun peut être routé vers un poste différent (entrant) et présenté en sortant (si autorisé). |
| Trunk SIP | La liaison entre votre IPBX et ODOIP. Deux modes : enregistrement (tête de ligne) ou IP. |
Avant de commencer, munissez-vous des informations transmises par ODOIP pour votre trunk :
| Paramètre | Exemple / valeur | Utilisé pour |
|---|---|---|
| Serveur SIP (domaine) | sip.odoip.fr | Registrar / proxy sortant |
| Port SIP | 5060 (UDP) | Signalisation |
| Transport | UDP | UDP par défaut (TCP/TLS sur demande) |
| Numéro tête de ligne | <0183610310> | Identifiant / mot de passe d'enregistrement |
| Mot de passe SIP | <secret> | Authentification (mode tête de ligne) |
| SDA / DID | <0183610310, 14, 15…> | Numéros entrants et présentation sortante |
| IP de la plateforme | <fournie par ODOIP> | Mode identification par IP |
| Codecs | alaw (G.711a), ulaw, G.729 | Média audio |
Votre IPBX s'enregistre sur sip.odoip.fr avec le numéro tête de ligne et son mot de passe. C'est le mode recommandé : il fonctionne derrière NAT et ne nécessite pas d'IP fixe.
| Réglage côté IPBX | Valeur |
|---|---|
| Nom d'utilisateur / Auth | <numéro tête de ligne> (ex. 0183610310) |
| Mot de passe | <secret> |
| Domaine / Realm / SIP Server | sip.odoip.fr |
| Port | 5060 |
| Enregistrement (Register) | Oui |
| Transport | UDP |
Aucun enregistrement : la plateforme reconnaît votre IPBX à son adresse IP publique fixe. Idéal pour les IPBX à IP dédiée et haut volume.
| Réglage | Côté ODOIP | Côté IPBX |
|---|---|---|
| Adresse autorisée | votre IP publique fixe | — |
| Destination des appels | votre IP:5060 | — |
| Trunk sortant | — | vers <IP plateforme>:5060, sans register |
| Authentification | par IP (pas de mot de passe) — l'IP fait foi | |
Les sections suivantes donnent les champs exacts pour chaque système. Le principe est identique partout : 1) créer le trunk vers ODOIP, 2) router les SDA entrants vers les postes, 3) créer la route sortante et régler la présentation du numéro.
| Onglet / Champ | Valeur |
|---|---|
| General → Trunk Name | odoswitch |
| General → Outbound CallerID | <numéro tête de ligne> |
| pjsip Settings → Username | <numéro tête de ligne> |
| pjsip Settings → Secret | <secret> |
| pjsip Settings → SIP Server | sip.odoip.fr |
| pjsip Settings → SIP Server Port | 5060 |
| pjsip Settings → Registration | Send |
| pjsip → Advanced → From Domain | sip.odoip.fr |
| pjsip → Advanced → Context | from-pstn (ou contexte dédié, cf. entrant multi-SDA) |
# En console Asterisk : asterisk -rx "pjsip show registrations" # Attendu : odoswitch/sip:sip.odoip.fr:5060 ... Registered
Créez une route par SDA : DID Number = le numéro, Set Destination = le poste ou groupe voulu.
| DID (SDA) | Destination |
|---|---|
| 0183610310 | Poste 2000 |
| 0183610314 | Poste 2001 |
| 0183610315 | Poste 2002 |
[from-odoswitch]
exten => _[+0-9]!,1,Set(REALDID=${PJSIP_HEADER(read,X-DID-Number)})
same => n,ExecIf($["${REALDID}"=""]?Set(REALDID=${EXTEN}))
same => n,Goto(from-pstn,${REALDID},1)
Affectez ensuite ce contexte (from-odoswitch) au trunk, à la place de from-pstn.| Champ | Valeur |
|---|---|
| Trunk Sequence | odoswitch |
| Dial Patterns | X. et +X. (numéros nationaux et E.164) |
| Override Extension | No (pour un CID par poste, cf. ci-dessous) |
Renseignez le champ Outbound CID de chaque poste (Applications → Extensions) avec le SDA qu'il doit présenter. Pour que ce numéro soit réellement transmis à ODOIP, activez l'envoi du P-Asserted-Identity sur le trunk :
| Champ (trunk pjsip → Advanced) | Valeur |
|---|---|
| Send RPID/PAI | P-Asserted-Identity (PAI) |
| Trust RPID/PAI | Yes |
| From User (identité d'enreg.) | <numéro tête de ligne> |
Menu SIP Trunks → Add SIP Trunk → Generic → Generic SIP Trunk.
| Champ 3CX | Valeur |
|---|---|
| Main Trunk No. | <numéro tête de ligne> |
| Registrar/Server/Proxy Hostname | sip.odoip.fr |
| SIP Server Port | 5060 |
| Type of Authentication | Register/Account (tête de ligne) | IP Based (mode IP) |
| Authentication ID (SIP user) | <numéro tête de ligne> |
| Authentication Password | <secret> |
| Onglet DID → DIDs | un DID par SDA (0183610310, 14, 15…) |
| Onglet Outbound Parameters → Caller ID | OutboundCallerId (présente le CID du poste) ; sinon Main Trunk No. |
Routez chaque DID (onglet DID → « Route to ») vers l'extension voulue. Pour le sortant, créez une Outbound Rule pointant vers ce trunk et laissez 3CX propager le Caller ID du poste (défini dans les propriétés de l'extension → Outbound Caller ID).
Menu Extension and Trunk → Trunk → Add.
| Champ Yeastar | Valeur |
|---|---|
| Trunk Type | Register Trunk (tête de ligne) | Peer Trunk (mode IP) |
| Transport | UDP |
| Hostname/IP | sip.odoip.fr — Port 5060 |
| Domain | sip.odoip.fr |
| Username | <numéro tête de ligne> |
| Password | <secret> |
| Authentication Name | <numéro tête de ligne> |
| DID / DOD | DID = SDA entrants ; DOD (Direct Outward Dialing) = numéro présenté par poste |
Le mappage DID → extension se règle dans les paramètres du trunk (onglet Inbound / DID Pattern). Le DOD associe à chaque poste le SDA présenté en sortant (conforme à la validation ARCEP côté ODOIP).
Déclarez une gateway dans un profil sofia (ex. external) :
<!-- conf/sip_profiles/external/odoip.xml --> <include> <gateway name="odoip"> <param name="username" value="<tête de ligne>"/> <param name="password" value="<secret>"/> <param name="realm" value="sip.odoip.fr"/> <param name="proxy" value="sip.odoip.fr"/> <param name="from-domain" value="sip.odoip.fr"/> <param name="register" value="true"/> <!-- false = mode IP --> <param name="expire-seconds" value="300"/> </gateway> </include>
Sortant : bridge sofia/gateway/odoip/${destination_number}, en positionnant effective_caller_id_number sur le SDA du poste. Entrant : routez selon ${destination_number} (le SDA appelé) vers l'utilisateur voulu.
Sur CUCM (Call Manager), le raccordement se fait via un SIP Trunk pointant vers ODOIP (généralement en mode IP, CUCM ayant une IP fixe) :
| Objet CUCM | Réglage |
|---|---|
| SIP Trunk Security Profile | Non-Secure, port 5060, UDP |
| SIP Trunk → Destination Address | <IP plateforme ODOIP> : 5060 |
| SIP Profile | Standard SIP Profile (RFC-compliant) |
| Significant Digits / Called Party Transform | présenter le numéro en national (0…) ou E.164 (+33…) |
| Route Pattern | motifs sortants → Route List → SIP Trunk ODOIP |
| Calling Party Transformation | forcer le SDA autorisé comme Calling Number (ARCEP) |
Un téléphone SIP Cisco autonome (gamme SPA/MPP) s'enregistre directement : Line 1 → Proxy sip.odoip.fr, User ID = tête de ligne, Password = secret, Register = Yes.
Tout IPBX compatible SIP se raccorde avec les mêmes valeurs. Cherchez dans son interface un « SIP Trunk / VoIP Provider / Gateway » et renseignez :
| Notion générique | Valeur ODOIP |
|---|---|
| Registrar / Proxy / SIP Server / Domain | sip.odoip.fr : 5060 (UDP) |
| Auth user / User ID / Account | <numéro tête de ligne> |
| Password / Secret | <secret> |
| Register | Oui (tête de ligne) / Non (mode IP) |
| Caller ID / CLIP | un SDA autorisé du trunk |
Un appel vers l'un de vos SDA est livré à votre IPBX ; c'est votre plan de numérotation qui décide du poste sonné.
Par défaut, ODOIP place le numéro réellement composé dans la Request-URI de l'INVITE (le champ standard DNIS), y compris en mode tête de ligne (un seul enregistrement, plusieurs SDA). C'est le fonctionnement attendu par tous les IPBX : chacun voit le bon SDA sans configuration exotique.
INVITE sip:0183610318@votre-ipbx SIP/2.0 ← le SDA composé, lisible nativement partout
En complément, ODOIP ajoute aussi l'en-tête X-DID-Number: 0183610318 (utile aux PBX de la famille Asterisk qui préfèrent router par en-tête).
| IPBX | Où il lit le SDA (nativement) | Multi-SDA sur tête de ligne |
|---|---|---|
| Asterisk / FreePBX | ${EXTEN} (user de la Request-URI) ou X-DID-Number | ✅ natif |
| FreeSWITCH / FusionPBX | destination_number | ✅ natif |
| 3CX | DID/DDI (Request-URI / To) | ✅ natif |
| Yeastar | DID Pattern (Request-URI / To) | ✅ natif |
| Cisco (CUCM / téléphone) | Called Number (Request-URI) | ✅ natif |
En sortant, deux choses comptent : l'autorisation (ODOIP reconnaît votre trunk) et la présentation (quel numéro voit l'appelé).
| Notion | Comment ça marche chez ODOIP |
|---|---|
| Autorisation | L'appel est autorisé au titre de l'identité du trunk (tête de ligne enregistrée, ou IP en liste blanche). C'est le socle anti-fraude. |
| Présentation (CLIP) | Le numéro affiché à l'appelé peut être n'importe quel SDA rattaché à votre trunk : numéro principal par défaut, ou un SDA par poste si votre IPBX le transmet (Outbound CID + P-Asserted-Identity). |
| Validation ARCEP | ODOIP vérifie que le numéro présenté est bien un DID rattaché à ce trunk et hébergé sur la plateforme. Sinon, repli automatique sur le numéro principal. Aucune usurpation possible. |
L'outil sngrep (sur un serveur SIP) affiche le flux d'un appel (INVITE, 100, 180/183, 200 OK, ou codes d'erreur). Les codes utiles :
| Code SIP | Signification | Piste |
|---|---|---|
| 401 / 407 | Authentification demandée | identifiants / mot de passe |
| 403 Forbidden | Refusé (IP/identité non autorisée, CID interdit) | liste blanche IP, SDA du trunk |
| 404 / 484 | Numéro inconnu / incomplet | format du numéro composé |
| 480 Temporarily Unavailable | Destination injoignable | IPBX non enregistré / poste absent |
| 486 Busy | Occupé | poste ou canaux saturés |
| 488 | Codec incompatible | autoriser alaw/ulaw/G.729 |
| Flux | Protocole / port |
|---|---|
| Signalisation SIP | UDP 5060 |
| Média (voix) RTP | UDP 10000–20000 |
alaw (G.711a) pour la meilleure qualité en national, ulaw (G.711u), et G.729 pour économiser la bande passante. Laissez la négociation ouverte à ces trois codecs.
| Terme | Définition |
|---|---|
| Tête de ligne | Numéro principal d'un trunk, servant d'identité d'enregistrement. |
| SDA / DID | Numéro de sélection directe à l'arrivée / Direct Inward Dialing — un numéro joignable de l'extérieur. |
| DOD | Direct Outward Dialing — numéro présenté en sortie, par poste. |
| Trunk SIP | Faisceau de lignes virtuelles entre deux systèmes SIP. |
| Registrar | Serveur auprès duquel un IPBX s'enregistre (ici sip.odoip.fr). |
| PAI | P-Asserted-Identity — en-tête SIP portant l'identité vérifiée de l'appelant. |
| ARCEP | Autorité française de régulation des télécoms ; impose la présentation d'un numéro légitime. |
| SBC | Session Border Controller — équipement de sécurité en bordure de réseau voix. |