|
|
|
@ -197,7 +197,7 @@ static void sig_pri_make_cc_dialstring(struct sig_pri_chan *p, char *buf, size_t
|
|
|
|
|
* \brief Reevaluate the PRI span device state.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri Asterisk D channel control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
*
|
|
|
|
|
* \return Nothing
|
|
|
|
|
*
|
|
|
|
@ -1042,7 +1042,7 @@ static int pri_find_dchan(struct sig_pri_span *pri)
|
|
|
|
|
* \brief Obtain the sig_pri owner channel lock if the owner exists.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param chanpos Channel position in the span.
|
|
|
|
|
*
|
|
|
|
|
* \note Assumes the pri->lock is already obtained.
|
|
|
|
@ -1073,7 +1073,7 @@ static void sig_pri_lock_owner(struct sig_pri_span *pri, int chanpos)
|
|
|
|
|
* \brief Queue the given frame onto the owner channel.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param chanpos Channel position in the span.
|
|
|
|
|
* \param frame Frame to queue onto the owner channel.
|
|
|
|
|
*
|
|
|
|
@ -1096,7 +1096,7 @@ static void pri_queue_frame(struct sig_pri_span *pri, int chanpos, struct ast_fr
|
|
|
|
|
* \brief Queue a control frame of the specified subclass onto the owner channel.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param chanpos Channel position in the span.
|
|
|
|
|
* \param subclass Control frame subclass to queue onto the owner channel.
|
|
|
|
|
*
|
|
|
|
@ -1123,7 +1123,7 @@ static void pri_queue_control(struct sig_pri_span *pri, int chanpos, int subclas
|
|
|
|
|
* \brief Find the channel associated with the libpri call.
|
|
|
|
|
* \since 1.10
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri span controller to find interface.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param call LibPRI opaque call pointer to find.
|
|
|
|
|
*
|
|
|
|
|
* \note Assumes the pri->lock is already obtained.
|
|
|
|
@ -1152,7 +1152,7 @@ static int pri_find_principle_by_call(struct sig_pri_span *pri, q931_call *call)
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Find the private structure for the libpri call.
|
|
|
|
|
*
|
|
|
|
|
* \param pri Span controller structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param channel LibPRI encoded channel ID.
|
|
|
|
|
* \param call LibPRI opaque call pointer.
|
|
|
|
|
*
|
|
|
|
@ -1208,7 +1208,7 @@ static int pri_find_principle(struct sig_pri_span *pri, int channel, q931_call *
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Fixup the private structure associated with the libpri call.
|
|
|
|
|
*
|
|
|
|
|
* \param pri Span controller structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param principle Array-index into private array to move call to if not already there.
|
|
|
|
|
* \param call LibPRI opaque call pointer to find if need to move call.
|
|
|
|
|
*
|
|
|
|
@ -1457,7 +1457,7 @@ tryanotherpos:
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pvt Channel to init the configuration.
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
*
|
|
|
|
|
* \note Assumes the pri->lock is already obtained.
|
|
|
|
|
*
|
|
|
|
@ -1516,7 +1516,7 @@ static int pri_find_empty_chan(struct sig_pri_span *pri, int backwards)
|
|
|
|
|
* \brief Find or create an empty no-B-channel interface to use.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri span controller to find interface.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
*
|
|
|
|
|
* \note Assumes the pri->lock is already obtained.
|
|
|
|
|
*
|
|
|
|
@ -1763,7 +1763,7 @@ static void sig_pri_party_name_convert(struct ast_party_name *ast_name, const st
|
|
|
|
|
*
|
|
|
|
|
* \param ast_number Asterisk party number structure to fill. Must already be set initialized.
|
|
|
|
|
* \param pri_number libpri party number structure containing source information.
|
|
|
|
|
* \param pri Span controlling structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
*
|
|
|
|
|
* \note The filled in ast_number structure needs to be destroyed by
|
|
|
|
|
* ast_party_number_free() when it is no longer needed.
|
|
|
|
@ -1788,7 +1788,7 @@ static void sig_pri_party_number_convert(struct ast_party_number *ast_number, co
|
|
|
|
|
*
|
|
|
|
|
* \param ast_id Asterisk party id structure to fill. Must already be set initialized.
|
|
|
|
|
* \param pri_id libpri party id structure containing source information.
|
|
|
|
|
* \param pri Span controlling structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
*
|
|
|
|
|
* \note The filled in ast_id structure needs to be destroyed by
|
|
|
|
|
* ast_party_id_free() when it is no longer needed.
|
|
|
|
@ -1818,7 +1818,7 @@ static void sig_pri_party_id_convert(struct ast_party_id *ast_id, const struct p
|
|
|
|
|
* \param ast_redirecting Asterisk redirecting structure to fill.
|
|
|
|
|
* \param pri_redirecting libpri redirecting structure containing source information.
|
|
|
|
|
* \param ast_guide Asterisk redirecting structure to use as an initialization guide.
|
|
|
|
|
* \param pri Span controlling structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
*
|
|
|
|
|
* \note The filled in ast_redirecting structure needs to be destroyed by
|
|
|
|
|
* ast_party_redirecting_free() when it is no longer needed.
|
|
|
|
@ -1940,7 +1940,7 @@ static void sig_pri_event_party_id(struct ast_str **msg, const char *prefix, str
|
|
|
|
|
* \brief Handle the MCID event.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param mcid MCID event parameters.
|
|
|
|
|
* \param owner Asterisk channel associated with the call.
|
|
|
|
|
* NULL if Asterisk no longer has the ast_channel struct.
|
|
|
|
@ -2044,7 +2044,7 @@ typedef void (*xfer_rsp_callback)(void *data, int is_successful);
|
|
|
|
|
* \brief Attempt to transfer the two calls to each other.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param call_1_pri First call involved in the transfer. (transferee; usually on hold)
|
|
|
|
|
* \param call_1_held TRUE if call_1_pri is on hold.
|
|
|
|
|
* \param call_2_pri Second call involved in the transfer. (target; usually active/ringing)
|
|
|
|
@ -2230,7 +2230,7 @@ static int sig_pri_cc_agent_cmp_cc_id(void *obj, void *arg, int flags)
|
|
|
|
|
* \brief Find the CC agent by libpri cc_id.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param cc_id CC record ID to find.
|
|
|
|
|
*
|
|
|
|
|
* \note
|
|
|
|
@ -2281,7 +2281,7 @@ static int sig_pri_cc_monitor_cmp_cc_id(void *obj, void *arg, int flags)
|
|
|
|
|
* \brief Find the CC monitor instance by libpri cc_id.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param cc_id CC record ID to find.
|
|
|
|
|
*
|
|
|
|
|
* \note
|
|
|
|
@ -2333,7 +2333,7 @@ static void sig_pri_cc_monitor_instance_destroy(void *data)
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param core_id CC core ID.
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param cc_id CC record ID.
|
|
|
|
|
* \param device_name Name of device (Asterisk channel name less sequence number).
|
|
|
|
|
*
|
|
|
|
@ -2377,7 +2377,7 @@ static struct sig_pri_cc_monitor_instance *sig_pri_cc_monitor_instance_init(int
|
|
|
|
|
* \brief Announce to the CC core that protocol CC monitor is available for this call.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param chanpos Channel position in the span.
|
|
|
|
|
* \param cc_id CC record ID.
|
|
|
|
|
* \param service CCBS/CCNR indication.
|
|
|
|
@ -2453,7 +2453,7 @@ static int sig_pri_cc_available(struct sig_pri_span *pri, int chanpos, long cc_i
|
|
|
|
|
* \brief Check if generic CC monitor is needed and request it.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param chanpos Channel position in the span.
|
|
|
|
|
* \param service CCBS/CCNR indication.
|
|
|
|
|
*
|
|
|
|
@ -2553,7 +2553,7 @@ done:
|
|
|
|
|
* \brief The CC link canceled the CC instance.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param cc_id CC record ID.
|
|
|
|
|
* \param is_agent TRUE if the cc_id is for an agent.
|
|
|
|
|
*
|
|
|
|
@ -3475,7 +3475,7 @@ static void sig_pri_aoc_e_from_ast(struct sig_pri_chan *pvt, struct ast_aoc_deco
|
|
|
|
|
* \brief send an AOC-E termination request on ast_channel and set
|
|
|
|
|
* hangup delay.
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param chanpos Channel position in the span.
|
|
|
|
|
* \param ms to delay hangup
|
|
|
|
|
*
|
|
|
|
@ -3549,7 +3549,7 @@ static int sig_pri_is_cis_call(int channel)
|
|
|
|
|
* \brief Handle the CIS associated PRI subcommand events.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param event_id PRI event id
|
|
|
|
|
* \param subcmds Subcommands to process if any. (Could be NULL).
|
|
|
|
|
* \param call_rsp libpri opaque call structure to send any responses toward.
|
|
|
|
@ -3802,7 +3802,7 @@ static int detect_aoc_e_subcmd(const struct pri_subcommands *subcmds)
|
|
|
|
|
* \brief Handle the call associated PRI subcommand events.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param chanpos Channel position in the span.
|
|
|
|
|
* \param event_id PRI event id
|
|
|
|
|
* \param channel PRI encoded span/channel
|
|
|
|
@ -4175,7 +4175,7 @@ static void sig_pri_handle_subcmds(struct sig_pri_span *pri, int chanpos, int ev
|
|
|
|
|
* \brief Kill the call.
|
|
|
|
|
* \since 1.10
|
|
|
|
|
*
|
|
|
|
|
* \param pri Span controller to find interface.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param call LibPRI opaque call pointer to find.
|
|
|
|
|
* \param cause Reason call was killed.
|
|
|
|
|
*
|
|
|
|
@ -4869,7 +4869,7 @@ static void sig_pri_ami_hold_event(struct ast_channel *chan, int is_held)
|
|
|
|
|
* \brief Handle the hold event from libpri.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param ev Hold event received.
|
|
|
|
|
*
|
|
|
|
|
* \note Assumes the pri->lock is already obtained.
|
|
|
|
@ -4945,7 +4945,7 @@ done_with_private:;
|
|
|
|
|
* \brief Handle the hold acknowledge event from libpri.
|
|
|
|
|
* \since 1.10
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param ev Hold acknowledge event received.
|
|
|
|
|
*
|
|
|
|
|
* \note Assumes the pri->lock is already obtained.
|
|
|
|
@ -4991,7 +4991,7 @@ static void sig_pri_handle_hold_ack(struct sig_pri_span *pri, pri_event *ev)
|
|
|
|
|
* \brief Handle the hold reject event from libpri.
|
|
|
|
|
* \since 1.10
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param ev Hold reject event received.
|
|
|
|
|
*
|
|
|
|
|
* \note Assumes the pri->lock is already obtained.
|
|
|
|
@ -5033,7 +5033,7 @@ static void sig_pri_handle_hold_rej(struct sig_pri_span *pri, pri_event *ev)
|
|
|
|
|
* \brief Handle the retrieve event from libpri.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param ev Retrieve event received.
|
|
|
|
|
*
|
|
|
|
|
* \note Assumes the pri->lock is already obtained.
|
|
|
|
@ -5102,7 +5102,7 @@ static void sig_pri_handle_retrieve(struct sig_pri_span *pri, pri_event *ev)
|
|
|
|
|
* \brief Handle the retrieve acknowledge event from libpri.
|
|
|
|
|
* \since 1.10
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param ev Retrieve acknowledge event received.
|
|
|
|
|
*
|
|
|
|
|
* \note Assumes the pri->lock is already obtained.
|
|
|
|
@ -5141,7 +5141,7 @@ static void sig_pri_handle_retrieve_ack(struct sig_pri_span *pri, pri_event *ev)
|
|
|
|
|
* \brief Handle the retrieve reject event from libpri.
|
|
|
|
|
* \since 1.10
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param ev Retrieve reject event received.
|
|
|
|
|
*
|
|
|
|
|
* \note Assumes the pri->lock is already obtained.
|
|
|
|
@ -7814,7 +7814,7 @@ static int sig_pri_available_check(struct sig_pri_chan *pvt)
|
|
|
|
|
* \brief Get an available call waiting interface.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri sig_pri PRI control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
*
|
|
|
|
|
* \retval cw Call waiting interface to use.
|
|
|
|
|
* \retval NULL if no call waiting interface available.
|
|
|
|
@ -7939,7 +7939,7 @@ int sig_pri_digit_begin(struct sig_pri_chan *pvt, struct ast_channel *ast, char
|
|
|
|
|
* \brief Send a MWI indication to the given span.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri Asterisk D channel control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
* \param mbox_number Mailbox number
|
|
|
|
|
* \param mbox_context Mailbox context
|
|
|
|
|
* \param num_messages Number of messages waiting.
|
|
|
|
@ -8002,7 +8002,7 @@ static void sig_pri_mwi_event_cb(const struct ast_event *event, void *userdata)
|
|
|
|
|
* \brief Send update MWI indications from the event cache.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri Asterisk D channel control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
*
|
|
|
|
|
* \return Nothing
|
|
|
|
|
*/
|
|
|
|
@ -8038,7 +8038,7 @@ static void sig_pri_mwi_cache_update(struct sig_pri_span *pri)
|
|
|
|
|
* \brief Stop PRI span.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri Asterisk D channel control structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
*
|
|
|
|
|
* \return Nothing
|
|
|
|
|
*/
|
|
|
|
@ -8094,7 +8094,7 @@ static int sig_pri_cmp_pri_chans(const void *left, const void *right)
|
|
|
|
|
* \brief Sort the PRI B channel private pointer array.
|
|
|
|
|
* \since 1.8
|
|
|
|
|
*
|
|
|
|
|
* \param pri PRI Span controlling structure.
|
|
|
|
|
* \param pri PRI span control structure.
|
|
|
|
|
*
|
|
|
|
|
* \details
|
|
|
|
|
* Since the chan_dahdi.conf file can declare channels in any order, we need to sort
|
|
|
|
|