code: func InitiateCall(client *messagebird.Client, source, destination string, callflow CallFlow, webhook *Webhook) (*Call, error) {
  	body := struct {
  		Source      string   `json:"source"`
  		Destination string   `json:"destination"`
  		Callflow    CallFlow `json:"callflow"`
  		Webhook     struct {
  			URL   string `json:"url,omitempty"`
  			Token string `json:"token,omitempty"`
  		}
  	}{
  		Source:      source,
  		Destination: destination,
  		Callflow:    callflow,
  	}
  	if webhook != nil {
  		body.Webhook.URL = webhook.URL
  		body.Webhook.Token = webhook.Token
  	}
  	var resp struct {
  		Data []Call `json:"data"`
  	}
  	if err := client.Request(&resp, http.MethodPost, apiRoot+"/calls", body); err != nil {
  		return nil, err
  	}
  	return &resp.Data[0], nil
  }
docs: // InitiateCall initiates an outbound call.
  //
  // When placing a call, you pass the source (the caller ID), the destination
  // (the number/address that will be called), and the callFlow (the call flow to
  // execute when the call is answered).