anchor.diff:    {error, invalid_type}.
   
   %% @doc Unbind SMPP connection 
  --spec unbind(pid()) -> ok.
  +-spec unbind(serverRef()) -> ok.
   unbind(C) ->
     gen_server:cast(C, unbind).
   
  
positive.code:   send_sm(C, SubmitSm, Message, DataCoding).
   
  %% @doc Checks the connection status of esmpp to the SMSC
  -spec is_connected(pid()) -> {status, boolean()}.
  is_connected(C) ->
    gen_server:call(C, is_connected).
  
  %% @doc Assigns callback to a mobile originating message or delivery receipt
  -spec callback(pid(), Type, atom(), atom()) -> ok | {error, invalid_type}
    when Type :: message | delivery_receipt.
  callback(C, message, Module, Function) ->
    gen_server:call(C, {callback_mo, Module, Function});
  
negative.code:   gen_server:start_link(Name, Module, Args, []).
  
  %% @see send_sms/5
  -spec send_sms(serverRef(), iodata(), iodata(), iodata()) -> [{message_id, iodata()} | {error, atom()}].
  send_sms(C, Sender, Destination, Message) ->
    send_sms(C, Sender, Destination, Message, #{}).
  
  %% @see send_sms/6
  -spec send_sms(serverRef(), iodata(), iodata(), iodata(), map()) -> [{message_id, iodata()} | {error, atom()}].
  send_sms(C, Sender, Destination, Message, Options) ->
    send_sms(C, Sender, Destination, Message, Options, #{}).
  
  