OCS Interconnect

Data charging

If you are using an Online Charging System that supports DPI intelligent identification 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