Mobility ManagementThis is about OpenBTS' HLR replacement, which we
will just call an "HLR" here for simplicity. HLR AbstractionAt a minimum, the HLR stores the following for each subscriber:
At a minimum, the HLR will support these actions:
The HLR Implemented in AsteriskAsterisk already stores the minimum data set required for the HLR.This information can be accessed through the Asterisk command line interface using a C function like popen() using this syntax: asterisk -rx "<command>"Here's an example of popen() use: FILE* result = popen("dialplan show 2003@sip-local","r"); Resolving a numeric address to an IMSIdburgess@pBook> sudo asterisk -rx "dialplan show 2003@sip-local" The extension was 2003, the IMSI is 310410226242003. Resolving an IMSI to a numeric addressdburgess@pBook> sudo asterisk -rx "sip show user 310410226242003" Get the numeric address from the Callerid line. Here, the IMSI is 310410226242003 and the numeric address is 2003. Find the most recent BTS IP for an IMSIdburgess@pBook> sudo asterisk -rx "database showkey SIP/Registry/310410226242003" Here, IMSI 310410226242003 was most recently registered on port 5062 on localhost. Insert a new ISDN/Address PairWe will do this by modifying sip.conf and extensions.conf and then reloading
them into Asterisk. Update the recent BTS IP for a given IMSIThis is done by the BTS itself via the SIP interface during the registration process. That already works. The HLR Implemented in MySQLIn the long run (after the Asterisk version works) the HLR
will be implemented as a MySQL database table. Asterisk OperationsWhenever a new subscriber is added or an E.164 field or IMSI is altered, the sip.conf and extensions.conf files need to be regenerated and reloaded for the serving Asterisk server. There must be a better way to do that. 注:Mobility Management(原文出处,翻译整理仅供参考!) |