Table of Contents
load_cdp(struct cdp_binds
*cdpb)
AAACreateRequest(AAAApplicationId
app_id, AAACommandCode command_code, AAAMsgFlag flags, AAASession
*session)
AAACreateResponse(AAAMessage
*request)
AAAReturnCode AAAFreeMessage(AAAMessage
**msg)
AAAReturnCode AAASendMessage(AAAMessage
*message, AAATransactionCallback_f *callback_f, void
*callback_param)
AAAReturnCode
AAASendMessageToPeer(AAAMessage *message, str *peer_id,
AAATransactionCallback_f *callback_f, void
*callback_param)
AAAMessage*
AAASendRecvMessage(AAAMessage *message)
AAAMessage*
AAASendRecvMessageToPeer(AAAMessage *message, str
*peer_id)
AAASession* AAACreateSession(void
*generic_data)
AAASession* AAAMakeSession(int
app_id,int type,str session_id)
AAASession* AAAGetSession(str
id)
AAADropSession(AAASession
*s)
AAASessionLock(unsigned int
hash)
AAASessionUnLock(unsigned int
hash)
AAASession*
AAACreateClientAuthSession(int is_statefull,AAASessionCallback_f
*cb,void *generic_data)
AAASession*
AAACreateServerAuthSession(AAMessage *msg,int
is_statefull,AAASessionCallback_f *cb,void
*generic_data)
AAASession* AAAGetAuthSession(str
id)
AAADropAuthSession(AAASession
*s)
AAATerminateAuthSession(AAASession
*s)
AAATransaction*
AAACreateTransaction(AAAApplicationId app_id,AAACommandCode
cmd_code)
int AAADropTransaction(AAATransaction
*trans)
AAA_AVP* AAACreateAVP(AAA_AVPCode code,
AAA_AVPFlag flags, AAAVendorId vendorId, char *data, size_t length,
AVPDataStatus data_status)
AAAReturnCode
AAAAddAVPToMessage(AAAMessage *msg, AAA_AVP *avp, AAA_AVP
*position)
AAA_AVP* AAAFindMatchingAVP(AAAMessage
*msg, AAA_AVP *startAvp, AAA_AVPCode avpCode, AAAVendorId vendorId,
AAASearchType searchType)
AAA_AVP * AAAGetNextAVP(AAA_AVP
*avp)
AAAReturnCode AAAFreeAVP(AAA_AVP
**avp)
str AAAGroupAVPS(AAA_AVP_LIST
avps)
AAA_AVP_LIST AAAUnGroupAVPS(str
buf)
AAA_AVP*
AAAFindMatchingAVPList(AAA_AVP_LIST avpList, AAA_AVP *startAvp,
AAA_AVPCode avpCode, AAAVendorId vendorId, AAASearchType
searchType)
AAAFreeAVPList(AAA_AVP_LIST
*avpList)
int
AAAAddRequestHandler(AAARequestHandler_f *f,void
*param)
int
AAAAddResponseHandler(AAAResponseHandler_f *f,void
*param)
List of Examples
Table of Contents
This module serves as a storage engine for PCSCF contacts, much like the standard Kamailio module, usrloc, is a storage engine for standard SIP contacts. The concept of a contact in IMS, PCSCF specifically, is very different to that of std. SIP and as a result we have built this new module. Alot of the design has been borrowed from the std. usrloc module. For example. An IMS contact, in PCSCF, needs things like:
Diameter Rx session for signalling bearer status. i.e. this is effectively QoS from the network to make sure the signalling link can be 'trusted'
IPSEC Security Assocation for secure signalling between UE and PCSCF (first point of contact)
IMPU, each contact can have a number of associated public identities (IMPU).
The number of entries of the hash table used by to store the contact records is 2^hash_size. For hash_size=4, the number of entries of the hash table is 16.
Default value is 9.
exported RPC commands.
Table of Contents
load_cdp(struct cdp_binds
*cdpb)
AAACreateRequest(AAAApplicationId
app_id, AAACommandCode command_code, AAAMsgFlag flags, AAASession
*session)
AAACreateResponse(AAAMessage
*request)
AAAReturnCode AAAFreeMessage(AAAMessage
**msg)
AAAReturnCode AAASendMessage(AAAMessage
*message, AAATransactionCallback_f *callback_f, void
*callback_param)
AAAReturnCode
AAASendMessageToPeer(AAAMessage *message, str *peer_id,
AAATransactionCallback_f *callback_f, void
*callback_param)
AAAMessage*
AAASendRecvMessage(AAAMessage *message)
AAAMessage*
AAASendRecvMessageToPeer(AAAMessage *message, str
*peer_id)
AAASession* AAACreateSession(void
*generic_data)
AAASession* AAAMakeSession(int
app_id,int type,str session_id)
AAASession* AAAGetSession(str
id)
AAADropSession(AAASession
*s)
AAASessionLock(unsigned int
hash)
AAASessionUnLock(unsigned int
hash)
AAASession*
AAACreateClientAuthSession(int is_statefull,AAASessionCallback_f
*cb,void *generic_data)
AAASession*
AAACreateServerAuthSession(AAMessage *msg,int
is_statefull,AAASessionCallback_f *cb,void
*generic_data)
AAASession* AAAGetAuthSession(str
id)
AAADropAuthSession(AAASession
*s)
AAATerminateAuthSession(AAASession
*s)
AAATransaction*
AAACreateTransaction(AAAApplicationId app_id,AAACommandCode
cmd_code)
int AAADropTransaction(AAATransaction
*trans)
AAA_AVP* AAACreateAVP(AAA_AVPCode code,
AAA_AVPFlag flags, AAAVendorId vendorId, char *data, size_t length,
AVPDataStatus data_status)
AAAReturnCode
AAAAddAVPToMessage(AAAMessage *msg, AAA_AVP *avp, AAA_AVP
*position)
AAA_AVP* AAAFindMatchingAVP(AAAMessage
*msg, AAA_AVP *startAvp, AAA_AVPCode avpCode, AAAVendorId vendorId,
AAASearchType searchType)
AAA_AVP * AAAGetNextAVP(AAA_AVP
*avp)
AAAReturnCode AAAFreeAVP(AAA_AVP
**avp)
str AAAGroupAVPS(AAA_AVP_LIST
avps)
AAA_AVP_LIST AAAUnGroupAVPS(str
buf)
AAA_AVP*
AAAFindMatchingAVPList(AAA_AVP_LIST avpList, AAA_AVP *startAvp,
AAA_AVPCode avpCode, AAAVendorId vendorId, AAASearchType
searchType)
AAAFreeAVPList(AAA_AVP_LIST
*avpList)
int
AAAAddRequestHandler(AAARequestHandler_f *f,void
*param)
int
AAAAddResponseHandler(AAAResponseHandler_f *f,void
*param)
Find and load the CDiameterPeer function bindings
Meaning of the parameters is as follows:
struct cdp_binds *cdpb - structure holding function pointers
Create a Diameter request
Meaning of the parameters is as follows:
AAAApplicationId app_id - structure holding function pointers
AAACommandCode command_code - command code for the message
AAAMsgFlag flags - flags to be set
AAASession *session - session id to be set
Create a Diameter response to a give request
Meaning of the parameters is as follows:
AAAMessage *request - request that this response is for
Free up memory used by Diameter message
Meaning of the parameters is as follows:
AAAMessage **msg - pointer to the pointer containing the message
Send Diameter message asynchronously
Meaning of the parameters is as follows:
AAAMessage *message - request message to be sent
AAATransactionCallback_f *callback_f - When the response is received, the callback_f(callback_param,...) is called
void *callback_param - generic param for callback
Send Diameter message to specific peer asynchronously
Meaning of the parameters is as follows:
AAAMessage *message - request message to send
str *peer_id - FQDN of peer to send to
AAATransactionCallback_f *callback_f - When the response is received, the callback_f(callback_param,...) is called
void *callback_param - generic param for callback
Send Diameter message synchronously. This blocks until a response is received or a transactional time-out happens.
Meaning of the parameters is as follows:
AAAMessage *message - request message to be sent
Send Diameter message to specific peer synchronously. This blocks until a response is received or a transactional time-out happens.
Meaning of the parameters is as follows:
AAAMessage *message - request message to send
str *peer_id - FQDN of peer to send to.
Create a generic Diameter session
Meaning of the parameters is as follows:
void *generic_data - data to be save to session, useful for attaching app specific data to the session
Create a Diameter session using already known params
Meaning of the parameters is as follows:
int app_id - app id to use
int type - type of session
str session_id - session ID
Retrieve a Diameter session. Returns with a lock on AAASession->hash - Unlock when done working with result
Meaning of the parameters is as follows:
str id - Diameter session ID to search for
Drop a Diameter session - deallocating all memory
Meaning of the parameters is as follows:
AAASession *s - session to drop
Lock a Diameter session (hash table row)
Meaning of the parameters is as follows:
unsigned int hash - hash to lock
Unlock a Diameter session (hash table row)
Meaning of the parameters is as follows:
unsigned int hash - hash to unlock
Creates an Authorisation session for the Client. It generate a new ID and adds to the list of CDP sessions. Returns with a lock on AAASession->hash
Meaning of the parameters is as follows:
int is_statefull - is session stateful or not
AAASessionCallback_f *cb - callback function on session state change
void *generic_data - generic callback data
Create authorisation session for the Server. Generates a new ID and add to CDP list of sessions. Returns with a lock on AAASession->hash.
Meaning of the parameters is as follows:
AAMessage *msg - request message from which to create server session
int is_statefull - is session stateful or not
AAASessionCallback_f *cb - callback function on session state change
void *generic_data - generic callback data
Look for an authorisation session. Returns with lock on AAASession->hash
Meaning of the parameters is as follows:
str id - ID of Auth session to search for
Deallocates the memory taken by a Authorisation session
Meaning of the parameters is as follows:
AAASession *s - Session to drop and deallocate memory for
Sends a service terminated event to the session
Meaning of the parameters is as follows:
AAASession *s - authhorisation session to terminate
Create a AAATransaction for the given request
Meaning of the parameters is as follows:
AAAApplicationId app_id - ID of the request's application
AAACommandCode cmd_code - request's code
Deallocates the memory taken by AAA transaction
Meaning of the parameters is as follows:
AAATransaction *trans - transaction to free
Create new AVP and return pointer to it
Meaning of the parameters is as follows:
AAA_AVPCode code - code for new AVP
AAA_AVPFlag flags - flags to set
AAAVendorId vendorId - vendor ID for AVP
char *data - generic payload data
size_t length - length of payload data
AVPDataStatus data_status - what to do with the payload, duplicate, free with message, etc
Find and load the CDiameterPeer function bindings
Meaning of the parameters is as follows:
AAAMessage *msg - the message to add to
AAA_AVP *avp - the AVP to add
AAA_AVP *position - AVP to add after. if NULL, we add at beginning
Find and load the CDiameterPeer function bindings
Meaning of the parameters is as follows:
AAAMessage *msg - the message to search in
AAA_AVP *startAvp - at which AVP to start the search. usefull for looking for more of the same name
AAA_AVPCode avpCode - AVP code to match
AAAVendorId vendorId - AVP vendor ID to match
AAASearchType searchType - look forward or backward
Find and load the CDiameterPeer function bindings
Meaning of the parameters is as follows:
AAA_AVP *avp - reference AVP
Find and load the CDiameterPeer function bindings
Meaning of the parameters is as follows:
AAA_AVP **avp - pointer memory to be freed
Groups a list of AVPS into a data buffer
Meaning of the parameters is as follows:
AAA_AVP_LIST avps - list of AVPS to group
Ungroup a data buffer into a list of AVPs
Meaning of the parameters is as follows:
str buf - payload to ungroup list from
Find an AVP in an AVP list
Meaning of the parameters is as follows:
AAA_AVP_LIST avpList - AVP list to search
AAA_AVP *startAvp - where to start the search
AAA_AVPCode avpCode - AVP code to match
AAAVendorId vendorId - vendor ID to match
AAASearchType searchType - forwards or backwards
Free AVP list and all its members
Meaning of the parameters is as follows:
AAA_AVP_LIST *avpList - list to be freed
add a #AAARequestHandler_f callback to request being received
Meaning of the parameters is as follows:
AAARequestHandler_f *f - callback function to be called on incoming requests
void *param - generic data passed to callback function
add a #AAAResponseHandler_f callback to responses being received
Meaning of the parameters is as follows:
AAAResponseHandler_f *f - callback function to be called on incoming responses
void *param - generic data to be bassed to callback function
3.1. |
Where can I find more about Kamailio? |
Take a look at http://www.kamailio.org/. |
|
3.2. |
Where can I post a question about this module? |
First at all check if your question was already answered on one of our mailing lists:
E-mails regarding any stable Kamailio release should be sent to
If you want to keep the mail private, send it to
|
|
3.3. |
How can I report a bug? |
Please follow the guidelines provided at: http://sip-router.org/tracker. |