OpenSIPS

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