90 likes | 253 Views
VERMOUTH for MARTINI SIP Verification with Event-package for Resolution of Managed Open-ended Username Target Handles (VERMOUTH) draft-kaplan-martini-vermouth-01. Hadriel Kaplan. The Problem. GIN gives us reg-event for PBX side, but…
E N D
VERMOUTH for MARTINISIP Verification with Event-package for Resolution of Managed Open-ended Username Target Handles (VERMOUTH)draft-kaplan-martini-vermouth-01 Hadriel Kaplan
The Problem • GIN gives us reg-event for PBX side, but… • The list of AoRs is also useful for Martini in the SSP side • For the IP-PBX et al to verify/learn what AoRs the SSP associates with it • For SSP to Notify IP-PBX of adds/removes • But the usernames may be open-number-plan or Local Numbers • Each actual possible username is unknown to SSP • And it may be a very big list if it is known
Mismatched provisioning: a real problem • When SSP and PBX AoRs don’t match, bad things happen: • Calls fail to reach PBX • Calls loop (badly) • Sometimes the error is caught quickly, but usually not until it’s actually called • It takes time to troubleshoot, and reducing that time saves money and customer frustration
The Solution • IP-PBX subscribes for a new “vermouth” event-package • SUBSCRIBE to the AoR it really registered for (i.e., “sip:pbx123@ssp.com”) • Gets back a new “userinfo” XML doc • The “state” it is subscribing for is usernames for the PBX • They’re essentially always “active”, until disabled/removed
Example reginfo XML <?xml version="1.0"?> <userinfo xmlns="urn:ietf:params:xml:ns:userinfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="23" state="full”> <userlist aor="sip:ip-pbx1@ssp.example.com" state="active”> <user id="76" state="active" type="e164">+12345678901</user> <user id="77" state="removed" type="alpha">bob</user> <user id="78" state="active" type="e614" range="[0-9]{4}">+1781555</user> <user id="79" state="active" type="private" range="[0-9]{4,10}" context="pbx.ssp.example.com"></user> </userlist> </userinfo>
We need to decide what goes in this • One way to think of this is like downloading a dial-plan • Except not with features, next-hops, nor anything but usernames • It’s a very simple representation • Just enough for PBX to figure out if its list matches • Note that currently it’s a username list, not an AoR list • Every username is @common-domain, so why bother repeating it?
Why not full regex? • Regex patterns are good for figuring out if a given string matches the pattern, but not what all possible strings matching it are • E.g., you can tell if 12345 matches, but not that 12346 and 1234567 also match • In other words, it’s hard to tell if the SSP thinks more usernames belong to the PBX than the PBX does • There are numerous patterns which match the same strings
This idea is half-baked • I need help • Data/information model • XML schema • Psychiatric counseling