查看源代码 megaco_transport 行为 (megaco v4.7)

Megaco 传输行为。

以下函数应从 megaco_transport 回调模块导出

摘要

回调

重新发送 megaco 消息。

发送 megaco 消息。

回调

链接到此回调

resend_message(Handle, Msg)

查看源代码 (可选)
-callback resend_message(Handle, Msg) -> ok | {cancel, Reason :: term()} | Error
                            when Handle :: term(), Msg :: iodata(), Error :: term().

重新发送 megaco 消息。

请注意,只有当用户将 resend_indication 配置选项设置为 true 并且 实际上是消息重发时,才会调用此函数。如果 这两个 条件都不满足,则将调用 send_message

如果函数返回 {cancel, Reason},则表示传输模块决定不发送消息。这不是错误。不会发出任何错误消息,也不会增加任何错误计数器。这将导致什么操作取决于发送的消息类型。

对于请求,megaco 将以与调用 megaco:cancel 类似的方式取消消息(成功发送后)。信息将根据请求的发出方式以不同的方式传播回用户:对于使用 megaco:call 发出的请求,信息将在返回值中传递。对于使用 megaco:cast 发出的请求,信息将通过调用回调函数 handle_trans_reply 传递。

对于回复,megaco 将取消回复,并将此信息通过调用回调函数 handle_trans_ack 返回给用户。

链接到此回调

send_message(Handle, Msg)

查看源代码
-callback send_message(Handle, Msg) -> ok | {cancel, Reason :: term()} | Error
                          when Handle :: term(), Msg :: iodata(), Error :: term().

等效于 send_message/3

链接到此回调

send_message(Handle, Msg, Resend)

查看源代码 (可选)
-callback send_message(Handle, Msg, Resend) -> ok | {cancel, Reason :: term()} | Error
                          when Handle :: term(), Msg :: iodata(), Resend :: boolean(), Error :: term().

发送 megaco 消息。

如果函数返回 {cancel, Reason},则表示传输模块决定不发送消息。这不是错误。不会发出任何错误消息,也不会增加任何错误计数器。这将导致什么操作取决于发送的消息类型。

对于请求,megaco 将以与调用 megaco:cancel 类似的方式取消消息(成功发送后)。信息将根据请求的发出方式以不同的方式传播回用户:对于使用 megaco:call/3 发出的请求,信息将在返回值中传递。对于使用 megaco:cast 发出的请求,信息将通过调用回调函数 handle_trans_reply 传递。

对于回复,megaco 将取消回复,并将此信息通过调用回调函数 handle_trans_ack 返回给用户。

只有当 resend_indication 配置选项设置为值 flag 时,才会调用函数 send_message/3。第三个参数 Resend 指示消息发送是否是重发。