Transcription
OpenSIPSBuilding multi-tenant VoIP platformOpenSIPS Summit 2015, AustinStas Kobzar, Modulis.ca Inc., DeveloperAdrien Laurent, Modulis.ca Inc., Founder and CEO
Very beginning Started at 2013 with ÉTSReplace old Nortel VoIP PBX CS1000More than 1500 Avaya phonesRequirements: Open SourceScalabilityVirtualizationMulti-level management (admins, users)Gradual migration process
Challenges Three protocols: SIP, UNIStim, SCCPUnified managementPBX featuresNo single points of failure
Platform design OpenSIPSAsterisk PBX featuresAsterisk SCCP/UNIStim gatewayAdmin web-interface (Rails ExtJS)REST APIProvisioningMonitoring and alerts (monit)
OpenSIPS roles RegistrarProxyLoad balancePresence serverPSTN SIP trunkingCalls ProfilingExceptions handlingSecurity
None-SIP devices via OpenSIPS Management OpenSIPS proxy Sharing presence state
Presence RLS and xcap for Avaya phonesCall pickupMWI (Message Waiting Indicator)
Remote attended x-fer and Asterisk challengeIVRCall-ID: AliceREFERReplace: BobCall-ID: Bobchan sipAliceRejected!Channel with Call-IDBob not foundBob
Call flowAliceINVITE Bob@domain.comLB selectAsterisk*BobStoreAsterisk IPINVITE Bob@1.1.1.1Realm: domain.comDialplan AGIINVITE Bob@domain.comLookup BobINVITE Bob@2.2.2.2CarlINVITE Carl@domain.comGet AsteriskIPINVITE Carl@1.1.1.1Realm: domain.comINVITE Carl@domain.comINVITE Carl@3.3.3.3
Challenge : MySQL MySQL cluster MySQL Master/Master simultaneous write. MySQL Master/Master active/passive
Testing with SIPP Call flows (register, call, presence)Stress tests.OpenSIPS benchmark
ClusterPBX v2
Multi-tenant platform : ClusterPBX v.2 DNS NAPTR/SRV managementAsterisk as RTP proxyAsterisk has problem with DNS SRV
Management MultilingualOpenSIPS MI and Asterisk AJAMMulti-tenantAdmin - resellers - clients - usersDomains client.reseller.tld
Top level : admin Access to any sub levelDID managementProvisioning templatesSIP trunksRouting rules
Resellers level Sub-level managementProfilingRoutingBranding
Client level Users managementPBX features (conferences, ring groups, MoH etc.)DIDs assignReportingIVRsDialplan
Multi-tenant : User
Ruby gems opensips-mi (https://github.com/modulis/opensips-mi) asterisk-ajam (https://github.com/modulis/asterisk-ajam)
Plans Migration to OpenSIPS v2Locations and dialogs binary replicationsRabbitMQ multiple OpenSIPS serversInvestigating Percona
Thank you!Questions?Stas KobzarAdrien Laurentinfo@modulis.ca
PSTN SIP trunking Calls Profiling Exceptions handling Security. None-SIP devices via OpenSIPS Management OpenSIPS proxy Sharing presence state. . Asterisk Store Asterisk IP Dialplan AGI Lookup Bob INVITE Bob@domain.com INVITE Bob@1.1.1.1 Realm: domain.com INVITE Bob@domain.com INVITE Bob@2.2.2.2 Carl