Trouble understanding locking logic
I've changed LOCK_ESCALATION from default table to auto and now they
  do not block each other, but still I don't understand why server
  escalates lock in this case.


This is specifically called out in the SQL Server Books Online CREATE TABLE topic.  The note states:


  After you create a partitioned table, consider setting the
  LOCK_ESCALATION option for the table to AUTO. This can improve
  concurrency by enabling locks to escalate to partition (HoBT) level
  instead of the table.


The default table will escalate to the table level, which includes all partitions. 

You could also improve both concurrency and performance of this query by adding Callid to the clustered index key and specify unique. This would touch only the single row needed by the query instead of scanning all rows in the partition with an exclusive lock.