How to set value programmatically for mobile number module's field using entity wrappers?
To store a value with entity wrapper set() should be used. Please read https://www.drupal.org/docs/7/api/entity-api/entity-metadata-wrappers

So your code $wrapper-&gt;field_phone = "0777123456"; would be $wrapper-&gt;field_phone-&gt;set('0777123456'); if the field structure required just a simple string.

However, according to the error message, it is not a string as it requires additional values for {field_phone_value} {field_phone_country} {field_phone_local_number} {field_phone_verified} {field_phone_tfa}. 

So to make sure I would first figure out its structure. You could do so, for example, saving any value via UI and then outputting the value of respecting variable using dpm(). However, most probably its an array and you could give a try to:

$phone = array(
  'field_phone_value' =&gt; '0777123456',
  'field_phone_country' =&gt; 'US',
  'field_phone_local_number' =&gt; 'some value',
  'field_phone_verified' =&gt; 'some value',
  'field_phone_tfa' =&gt; 'some value'
);
$wrapper-&gt;field_phone-&gt;set($phone);