What IAX codes to use with libiax2?

Hi! I am writing client for custom GSM termination gatway using libiax2 (included in libiaxclient). Code of library is great and now all works, but I am not shure what IAX codes to use, can you please correct me please:

  1. Call from originator, GSM subscriber makes UP after alerting , then hangups:

Originator Gateway
---------------> Init call
<------------------------- AST_CONTROL_PROCEEDING (15)
.
. (waiting for RING/Alerting from gsm)
.
<-------------------------- AST_CONTROL_RINGING (2)
.
. (waiting for UP from gsm)
<--------------------------- AST_CONTROL_ANSWER (4)
.
. (waiting for GSM subscriber to hangup)
<---------------------------- IAX_COMMAND_REJECT ( 6 )

1.1 Should I use AST_CONTROL_PROGRESS (14 ) instead of AST_CONTROL_PROCEEDING (15). In SIP terminology this code called (183 Session Progress), but IAX RFC rfc5456 says that I need to use AST_CONTROL_PROCEEDING code, what is correct?

1.2 Should I use IAX_COMMAND_HANGUP (by calling iax_hangup) instead IAX_COMMAND_REJECT (calling iax_reject) here? What is the difference?

  1. Call from originator, GSM subscriber is busy:

Originator Gateway
---------------> Init call
<------------------------- AST_CONTROL_PROCEEDING (15)
.
. (waiting for busy from gsm)
.
<---------------------------- AST_CONTROL_BUSY (5) ?
2.1 What to send after AST_CONTROL_BUSY to clean and finish session?

I would consider this a developer question.

As I understand it, IAX just externalises the internal messaging within Asterisk so every possible IAX message can be used.