查看源代码 megaco_transport 行为 (megaco v4.7)
Megaco 传输行为。
以下函数应从 megaco_transport
回调模块导出
send_message/2
[强制
]send_message/3
[可选
]resend_message/2
[可选
]
摘要
回调
-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 返回给用户。
-callback send_message(Handle, Msg) -> ok | {cancel, Reason :: term()} | Error when Handle :: term(), Msg :: iodata(), Error :: term().
等效于 send_message/3
。
-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
指示消息发送是否是重发。