OCS Interconnect

From YateBTS
Jump to: navigation, search


Data charging

If you are using an OCS that supports DPI intelligent identifcation technologies, you need to redirect traffic for tun-pdn to your OCS/DPI gateway in order to identify and segregate media.

See MMI -> Equipment -> Edit Equipment -> UCN -> GGSN/PGW. Tunnels -> tun-pdn -> IPv4 Interface

Question: How are you going to identify the subscriber to charge?
You'll need to assign fixed IPs to subscribers. You can do it in MMI -> Subscriber Management -> Subscribers
See 'Static address allocations' section in edit subscriber
To be able to use it you must enable in internet AP also: MMI -> My Network -> APNs -> <AP name> -> 'Fixed IP allowed'


Voice call charging

Setup GMSC: MMI -> Edit equipment -> UCN:

  • Page 'Edit equipment': Make sure 'GMSC support' is set to 'active'
  • Page 'GMSC': Set 'In Route' to 'gmsc'
  • Page 'Accounts':

Add a SIP listener with:
IPv4 address: 127.0.0.1
Type: udp
Role: gmsc
Port: 5071

  • Page 'VLR/CSCF':

Set 'GW Call' to 'sip/sip:*@127.0.0.1:5071'
Set 'GW Connection name' to 'core'
Make sure 'Always GMSC' is checked.
Make sure 'First Roaming Number' is set. Set it to '882809900' if not set
Make sure 'Count of Roaming Numbers' is set to non 0. Set it to '10' if not set
In 'VLR SIP Listener' section add a new listener:
IPv4 address: 127.0.0.1
Type: udp
Role: core
Port: 5070

  • Add custom CAMEL CSI when handling voice calls routing.

MMI -> Edit equipment -> UCN -> Routing
Add rule:
Name: 'GMSC Route'
Rule:

[contexts] 
${connection_id}gmsc=${called}^\(0088280\|+88280\)\(.*\)$=return;msisdn=88280\2;roaming=true 

[default] 
${roaming}^88280=sip/sip:+${roaming}@127.0.0.1:5070;oconnection_id=gmsc 
  • Add a new new rule:

Name: 'Set CSI'
Rule:

[SET_CSI_VMSC] 
${vmsc}.=;bcsm.dp.idp.mscAddress=${vmsc};bcsm.dp.idp.mscAddress.plan=isdn;bcsm.dp.idp.mscAddress.nature=international; 

[O_CSI] 
.*=;bcsm.dp=collectedInfo; \ 
    bcsm.dp.idp.imsi=${o_imsi}; \ 
    bcsm.dp.idp.servicekey=1; \ 
    bcsm.dp.idp.default_call_handling_continue=continueCall; \ 
    bcsm.dp.idp.CalledPartyAddress.route=gt; \ 
    bcsm.dp.idp.CalledPartyAddress.gt=88280123456789; \ 
    bcsm.dp.idp.CalledPartyAddress.gt.translation=10; \ 
    bcsm.dp.idp.CalledPartyAddress.gt.encoding=bcd0; \ 
    bcsm.dp.idp.CallingPartyAddress.route=gt; \ 
    bcsm.dp.idp.CallingPartyAddress.gt=YATEUCN_GT; \ 
    bcsm.dp.idp.CallingPartyAddress.gt.translation=10; \ 
    bcsm.dp.idp.CallingPartyAddress.gt.encoding=bcd0; 
.*=include SET_CSI_VMSC 

[alter_call_execute] 
${role}gmsc=if ${module}bcsm^=if ${callto}bcsm^=if ${bcsm.dp}^$={ 
    .*=;callto=bcsm/o/${callto} 
    .*=include O_CSI; 
}= 
NOTES

Please replace YATEUCN_GT with YateUCN's GT. You can find it in Edit equipment -> UCN -> SS7 Settings -> Global title
O-CSI will be added for all voice calls. We may add custom O-CSI per calling party number (or range) if needed
Take a look at bcsm.dp.idp.default_call_handling_continue=continueCall
This instructs the SSF to continue (allow) the call if unable to reach the SCF.
You may change it to releaseCall to forbid the call

  • Edit equipment -> STP -> Routing

Add a new rule:
Name: 'SCF GT Translate'
Rule:

[gtt-isdn] 
^88280123456789$={ 
    .*=;gt=YATEUCN_GT 
    .*=newmatch ${gt};route=gt 
}= 
NOTE
Please replace YATEUCN_GT with YateUCN's GT. You can find it in Edit equipment -> UCN -> SS7 Settings -> Global title